1.对于基本数据类型来说传递的是值;
2.对于引用数据类型传递的就是引用;
public class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress(){
return this.toString();
}
}
public static void main(String[] args) {
Dog a = new Dog("A");
System.out.println(a.getAddress()); //1.地址值@490
System.out.println(a.getName());//2.name值为A
function(a);//3.将a的引用传入方法
System.out.println(a.getAddress());//9.还是a的地址值@490
System.out.println(a.getName());//10.还是a的name值:A
}
private static void function(Dog b) {
System.out.println(b.getAddress());//4.还是a的引用;地址值@490
System.out.println(b.getName());//5.还是a的name值为A;
b = new Dog("B");//6.创建一个新对象,b指向这个新对象地址值(对a没有任何影响)
System.out.println(b.getAddress());//7.这个新对象的地址值@560
System.out.println(b.getName());//8.新对象的name:B
}
注意:
a)对于在调用的方法里操作这个参数,操作的就是原对象
b)传入的引用a于方法中的参数b只是引用的地址值相等.仅此而已,方法中让你指向任何地方与a没有任何关系.
调用方法时,只是说明传入这个参数的地址值与a相同.