我在网上找的一段代码
class Test{
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}public class Admin{
public static Test call(Test t) {
Test t2 = new Test();
t2.setName("call1");
t = t2 ;
return t2;
}
public static void main(String[] arg) {
Test obj = new Test();
obj.setName("abc");
call (obj) ;
System.out.println("obj"+obj.getName());
}
}
输出为objabc如果是按值传送的话,在代码段中的t=t2就应该把obg.name改为"call1"了
所以我的理解就是在参数为对象的情况下传送给方法的确实是一个引用,而不像基本数据类型传送的是值。
class Test{
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}public class Admin{
public static Test call(Test t) {
Test t2 = new Test();
t2.setName("call1");
t = t2 ;
return t2;
}
public static void main(String[] arg) {
Test obj = new Test();
obj.setName("abc");
call (obj) ;
System.out.println("obj"+obj.getName());
}
}
输出为objabc如果是按值传送的话,在代码段中的t=t2就应该把obg.name改为"call1"了
所以我的理解就是在参数为对象的情况下传送给方法的确实是一个引用,而不像基本数据类型传送的是值。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货