方法参数传递方式:值传递、引用传递
具体用法使用情况:
1、一个方法不能修改一个基本数据类型的参数(数值型或布尔型)
private void change(int x){
x = x*3;
}
public static void main(String[] args) {
ParamTest test = new ParamTest();
int data = 10;
test.change(data);
System.out.println(".."+data);
}
结果为:
..10
原理:
2、一个方法可以修改一个对象参数的状态
private static class Entity{
String userName;
String password;
@Override
public String toString() {
return "entity [userName=" + userName + ", password=" + password + "]";
}
}
private void changeElement(Entity entity2){
entity2.userName = "hrx";
}
public static void main(String[] args) {
ParamTest test = new ParamTest();
Entity entity1 = new Entity();
entity1.userName = "abc";
test.changeElement(entity1);
System.out.println(".."+entity1.userName);
}
结果为:
..hrx
3、一个方法不能让对象参数引用一个新的对象
private static class Entity{
String userName;
String password;
@Override
public String toString() {
return "entity [userName=" + userName + ", password=" + password + "]";
}
}
private void exchangeEntity(Entity x,Entity y){
Entity temp = x;
x = y;
y = temp;
}
public static void main(String[] args) {
Entity entity1 = new Entity();
Entity entity2 = new Entity();
entity1.userName = "abc";
entity2.userName = "def";
test.exchangeEntity(entity1, entity2);
System.out.println(entity1.userName+"..."+entity2.userName);
}
结果:
abc...def
原理:x跟y互换指向内存地址地址