持续更新中😬 加个关注,后续上新不错过~
方法中最重要的部分之一就是方法的参数,参数属于局部变量,当对象调用方法时,参数必须有具体的值
1.传值机制
在Java中方法的所有参数都是“传值”的。例如向方法的int型参数x传递一个int值,那么参数x得到的值是传递的值的拷贝。
因此方法中改变参数的值,不会影响向参数“传值”的变量的值。
2.基本数据类型参数的传值
对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。
例如:不能向int型参数传递一个float值,但可以向double型参数传递一个float值。
3.引用类型参数的传值
Java的引用型数据包括数组、对象、接口。
但参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。
对于两个相同类型的引用型变量,如果具有同样的引用,就会用同样的实体,因此,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化;但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的引用,反之亦然。
一个类如果具有相同的引用,二者就具有完全相同的变量
4.可变参数
可变参数是指在声明方法时,不给出参数列表中从某项开始直至最后一项参数的名字和个数,但这些参数的类型必须完全相同。
可变参数使用“…”表示若干个参数,这些参数的类型必须相同。例如:public void g(double a,int …x),那么,方法g的参数列表中,第1个参数是double型,第二个至最后一个参数是int型,但连续出现的int型参数的个数可变。称x是方法g的参数列表中的可变参数的“参数代表”。
“参数代表”必须是参数列表中的最后一个。特别注意的是,下列方法定义中
public void method(int …x,int y)错误的使用了可变参数x,因为可变参数x代表的最后一个参数不是method方法的最后一个参数。
对于可变参数,Java也提供了增强的for语句,允许按如下方式使用for语句遍历参数代表所代表的参数。
public int getSum(int... x){ // x是可变参数的参数代表
int sum=o;
for(int i=0;i<x.length;i++){
sum=sum+x[i];
}
return sum;
}
// 上面的for循环语句可以改为
for(int param:x){
su=sum+param;
}
若有帮助的话,请点个赞吧!😊