日期:2014-05-20  浏览次数:20563 次

大家来看,这个程序会是什么结果?
首先:

public   class   Person   {

        public   String   name;

        public   String   age;

        public   String   address;

        public   String   getAge()   {
                return   age;
        }

        public   String   getName()   {
                return   name;
        }

        public   String   getAddress()   {
                return   address;
        }

        public   void   setAge(String   age)   {
                this.age   =   age;
        }

        public   void   setName(String   name)   {
                this.name   =   name;
        }

        public   void   setAddress(String   address)   {
                this.address   =   address;
        }

}


然后:

public   class   Test3   {

        public   static   void   main(String[]   args)   {

                Person   person   =   new   Person();

                person.setName( "小胡同志 ");
                person.setAge( "23 ");
                person.setAddress( "中国北京 ");

                Person   person2   =   new   Person();
                person2   =   person;

                person.setAddress( "美国洛杉矶 ");

                System.out.println(person2.getAddress());
        }
}


如果运行一下结果会是:   美国洛杉矶

问题:person2   是新new的一个对象,为什么person的属性的改变会影响到person2   ?

------解决方案--------------------
person2 = person;之后,
这两个东西就同一个地址了,所以会变