4.5 参数传值
4.5.1 传值机制
在Java中,方法的所有参数都是传值的,也就是说,方法中参数变量的值是调用者指定的值的拷贝
4.5.2 基本数据类型参数的传值
对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。
例如:不可以向一个int值传递一个float值,可以向一个double传递一个float
代码例子:
//基本数据类型参数传值
public class Example4_6_Computer {
int add(int x, int y) {
return x + y;
}
}
public class Example4_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Example4_6_Computer xComputer =new Example4_6_Computer();
int m=90;
int n=10;
int result1 = xComputer.add(m, n);//将m、n传值给x、y
System.out.println(result1);
int result2 = xComputer.add(10+m, n*2+10);//将10+m、n传值给x、n*2+10
System.out.println(result2);
}
}//输出结果为:100、300
4.5.3 引用类型参数的传值
Java引用数据类型:数组,对象,接口
当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量中引用的实体
//引用类型参数传值例子
public class Example4_7_Battery {
int elect;
public Example4_7_Battery(int amou) {
// TODO Auto-generated constructor stub
elect = amou;
}
}
public class Example4_7_Radio {
void openRadio(Example4_7_Battery battery) {
battery.elect = battery.elect - 10;
}
}
public class Example4_7 {
public static void main(String[] args) {
//引用类型参数的传值
Example4_7_Battery battery =new Example4_7_Battery(100);//创建对象
System.out.println("第一次传值:"+battery.elect);
Example4_7_Radio radio=new Example4_7_Radio();
System.out.println("开始使用第一次传值:");
radio.openRadio(battery);
System.out.println("最后值:"+battery.elect);
}
}
//输出结果:
//第一次传值:100
//开始使用第一次传值:
//最后值:90