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

初学者问个java this 的问题
[code]
public   class   A   {
        String   s   =   "Hello ";
        public   A(String   s)   {
        System.out.println( "s   =   "   +   s);
        System.out.println( "1   ->   this.s   =   "   +   this.s);
        //this.s=s;//这里------------
        System.out.println( "2   ->   this.s   =   "   +   this.s);
        }
        public   static   void   main(String[]   args)   {
        A   pp=new   A( "HelloWorld! ");
        System.out.println(pp.s);
        }
        }
[/code]
想问的是   在没有this.s=s;   这句的时候   pp.s的值是 "Hello "   那么   pp(指针)是怎么找到s所指的值的?(引用值如何传递?)

------解决方案--------------------
pp是A的一个对象(new了一个),pp.s就是引用了A类的一个成员变量

你的注释掉的那行代码正是通过构造方法对成员变量进行赋值
------解决方案--------------------
因为你在一开始就进行了初始化操作:String s = "Hello ";
当你新建一个对象即new A( "HelloWorld! ")时通过=把引用传给了pp!