62,620
社区成员
发帖
与我相关
我的任务
分享
public class test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p;
p = new Person("zhangsan");
System.out.println("main方法--->"+p);
a(p);
System.out.println("main方法--->"+p);
}
public static void a(Person p) {
p.setName("lisi");
System.out.println("a方法--->"+p);
p = new Person("wangwu");
System.out.println("a方法--->"+p);
}
}
class Person {
private String name;
/**
* @param name
*/
public Person(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person [name=" + name + "]";
}
}
main方法--->Person [name=zhangsan]
a方法--->Person [name=lisi]
a方法--->Person [name=wangwu]
main方法--->Person [name=lisi]
可以这样理解参数是外部引用值的一个副本,和外部值指向同一个内存地址,当方法结束时,该参数会被销毁。