Robin1985

导航

 

方法

方法(method):方法是为完成一个操作而组合在一起的语句组,它可以用于定义可重用的代码以及组织和简化编码。

定义方法

定义方法的语法如下所示:

修饰符 返回值类型 方法名 (参数列表) {

  //方法体;

}

方法可以根据具体业务来设置返回值类型。某些方法只是完成某些要求的操作,而不返回值。这种情况下,返回值类型为void。

定义的方法,参数列表中的变量为形式参数(formal parameter)或者简称形参(parameter)。当调用该方法时,就给参数传递一个值,这个值称为实际参数(actual parameter)或者简称实参(argument)。参数列表指明方法中参数的类型、顺序和个数,参数列表是可选的,方法可以不包含参数。

调用方法

根据方法是否有返回值,调用方法有两种途径。

  1. 如果方法返回一个值,对方法的调用通常就当作一个值处理。

  2. 如果方法返回void,对方发的调用就是一条语句。

    当程序调用一个方法时,程序控制权就转移到被调用的方法。当执行完return语句或执行到表示方法结束的右括号时,被调用的方法将程序控制权还给调用者。

main方法

1 public static void main(String[] args){}

main方法和其他方法的唯一区别就在于它是由Java虚拟机调用的。main方法的方法头永远都是一样的。它包括修饰符public和static,返回值类型void,方法名mian,String[]类型的参数。

栈内存

每当调用一个方法时,系统都会将参数、局部变量存储在一个成为栈(stack)的内存区域中,它用先进后出的方式存储数据。当一个方法调用另一个方法时,调用者的栈空间保持不动,新开辟的空间处理新方法的调用。一个方法结束返回到调用者时,其相应的空间也被释放。

方法重载

方法重载(method overloading)就是说,在一个类中有两个方法,它们具有相同的名字,但有不同的参数列表。Java编译器根据方法签名决定使用哪个方法。

被重载的方法必须具有不同的参数列表。与返回值或修饰符无关。例如:

注意:参数列表中,两个或多个参数类型不同,位置不同,也属于重载。

1 public int add();
2 public int add(int a, int b);
3 public void add(int a, int b);//与上一个add方法冲突,原因参数列表相同
4 public int add(double a, int b);
5 public int add(int a, double b);//与上一个的参数列表位置不同,也属于重载

变量的作用域

变量的作用域或叫变量的使用范围是指变量可以在程序中引用的范围。在方法中定义的变量称为局部变量(local variable)。局部变量的作用域从声明变量的地方开始,直到包含该变量的语句块结束为止。局部变量必须在使用之前声明和赋值。

参数实际上就是一个局部变量。一个方法的参数的作用域涵盖整个方法。

可变参数

Java在1.5增加了新特性:可变参数。可变参数用于参数个数不确定,类型确定的情况,Java把可变参数当作数组来处理。调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体重以数组的形式访问可变参数。注意:可变参数必须位于最后一项。

1 public void variable(int i, String...args) {//args必须位于参数列表最后一项
2   for (int i = 0; i < args.length; i++) {//已将args隐式转成String[]数组
3   }
4 }

 

posted on 2017-03-19 16:52  Robin1985  阅读(92)  评论(0)    收藏  举报