首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

该死的参数传递机制!解决方案

2013-04-20 
该死的参数传递机制!public static void main(String[] args) {Person person new Person()test01(pers

该死的参数传递机制!
public static void main(String[] args) {

     Person person = new Person();
     test01(person);
     test02(person);
     System.out.println(person.getName());
}
    
static void test01(Person person){
     person.setName("world");
}

static void test02(Person person){
     person = new Person();
     person.setName("hello");
}

看到的兄弟给个结果吧..


[解决办法]
答案是 world啊,要分清引用变量和被引用的对象之间的区别,main方法里Person person=new Person();这句,你建立了一个Person类型的引用变量(相当于指针),指向new person()生成的这个person实例,假设叫做实例A。test01中调用的person指向A,调用的A的方法。而你在test02中改变了person这个引用变量指向的实例,你生成了一个新实例,假设叫做B,并调用B的方法,那么现在A的name属性是A,B的name属性是hello。然后java是值传递,所以main方法中的person还是原来的person指向A对象,所以最后打出来的是world。

热点排行