参数传值
方法中最重要的部分之一就是方法的参数,参数属于局部变量,当对象调用方法时,参数被分配内存空间,并要求调用者向参数专递值,即方法被调用时,参数变量必须有具体的值。
传值机制
在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。例如,如果向方法的int型参数x传递一个int值,那么参数x得到的值是传递的值的拷贝。
基本数据类型的传值
对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。
比如定义了一个long型,是可以向它传递int short,但是比Long型高的float和double是不可以传递的。
引用参数类型的传值
当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。
可变参数
可变参数是指在声明方法时不给出参数列表中从某项直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“…”表示若干个参数,这些参数的类型必须相同,最后一个参数必须是参数列表中的最后一个参数。例如:public void f(int … x)那么,方法f的参数列表中,从第1个至最后一个参数都是int型,但连续出现的int型参数的个数不确定。称x是方法f的参数列表中的可变参数的“参数代表”。
参数代表可以通过下标运算来表示参数列表中的具体参数,即x[0],x[1]…x[m]分别表示x代表的第1个至第m个参数。
PS:见示例。
Computer类 提供了一个求和的方法
public class Computer {
public int getSum(int... x) { //返回int类型求和的方法
int sum = 0;
for (int i = 0; i < x.length; i++) {
sum = sum + x[i];
}
return sum;
}
}
Demo16
public class Demo16 {
public static void main(String[] args) {
Computer computer = new Computer(); //声明对象并完成初始化
int result = computer.getSum(123,345,567);
System.out.println("123,345,567之和:"+result);
}
}
结果
原文链接:http://www.maiziedu.com/wiki/java/value/
网友评论