public class A
{
public String name;
public A(String name)
{
this.name = name;
}
public A()
{
name = "";
}
private static void UpdateA(A tmp)
{
tmp = new A("函数里面update");
System.out.println(tmp.name);
}
public static void main(String args[])
{
A tmp1 = new A("第一个");
UpdateA(tmp1);
System.out.println(tmp1.name);
}
}为什么tmp没有变
什么情况下回变化
{
public String name;
public A(String name)
{
this.name = name;
}
public A()
{
name = "";
}
private static void UpdateA(A tmp)
{
tmp = new A("函数里面update");
System.out.println(tmp.name);
}
public static void main(String args[])
{
A tmp1 = new A("第一个");
UpdateA(tmp1);
System.out.println(tmp1.name);
}
}为什么tmp没有变
什么情况下回变化
{
tmp = new A("函数里面update");
System.out.println(tmp.name);
}
没有起作用
出了UpdateA就没有作用了
除非它被指向或者return出来
2、UpdateA(tmp1); 2.1、private static void UpdateA(A tmp)
2.2、{
2.3、 tmp = new A("函数里面update"); //tmp指向一个新对象,但tmp1指向原对象没变
2.4、 System.out.println(tmp.name);
2.5、}3、System.out.println(tmp1.name); //tmp1指向原对象,因此结果不变
public class A
{
public String name;
public A(String name)
{
this.name = name;
}
public A()
{
name = "";
} public static void change(A tmp){
tmp.name="改了";
} private static void UpdateA(A tmp)
{
tmp = new A("函数里面update");
System.out.println(tmp.name);
}
public static void main(String args[])
{
A tmp1 = new A("第一个");
UpdateA(tmp1);
change(tmp1);//改tmp1是改对象内容
System.out.println(tmp1.name);
}
}
http://www.superstarboy.cn/bbs/list.asp?lb=26
Davis129(别信自己) ( ) 信誉:100 赞同以上两位的回答。相同答案就不多说了