您需要它的三个明显情况:
在与构造函数的第一部分相同的类中调用另一个构造函数
区分局部变量和实例变量(无论是在构造函数中还是在任何其他方法中)
将对当前对象的引用传递给另一个方法
以下是这三个例子:
public class Test { int x; public Test(int x) { this.x = x; } public Test() { this(10); } public void foo() { Helper.doSomethingWith(this); } public void setX(int x) { this.x = x; } }
我相信也有一些奇怪的情况使用你需要的内部类,super.this.x
但它们应该避免,因为非常模糊,IMO :)
编辑:我想不出任何为什么你想要它直接this.foo()
方法调用的例子.
编辑:saua在晦涩的内部类例子上做出了贡献:
我认为晦涩的情况是:
OuterClass.this.foo()
当foo()
从具有foo()
方法的Inner类中的代码访问外部类时.