this 关键字

147 阅读1分钟

this 关键字

  • this关键字的第一个作用是获得当前对象的引用,它只能在非静态方法中使用。

    对于两个相同类型的对象a,b,你同时调用他们的add(int x,int y)方法,那编译器怎么知道正在执行的方法是对象a的还是对象b的呢。事实上编译器做了一些底层工作。在调用非静态方法时,编译器会隐秘地向方法内部传递了一个指向操作对象的引用。

    所以实际上调用方法时是这样的:a.add(a,1,2)

    关键字this就是正在执行方法的对象的引用了,当你调用一个对象的方法时,this 生成了一个对象引用。你可以像对待其他引用一样对待这个引用。

  • this关键字的第二个作用是在构造器里显示地调用具有其他参数的构造器。且每一个构造器中只能出现一次这种调用。非构造器禁止使用这种方法。

    Flower(String s, int petals) {
            this(petals);
            //- this(s); // Can't call two!
            this.s = s; // Another use of "this"
            System.out.println("String & int args");
        }