为什么我需要使用关键字"this"来调用我的封闭方法或变量

zer*_*uno 3 java nested-class

我有一个疑问,如果我有一个非静态嵌套类,为什么我需要使用关键字"this"来调用我的封闭类的方法或变量?我认为如下:如果非静态嵌套类可以访问其封闭类的方法和变量,并且非静态嵌套对象实例已经与其封闭对象实例相关联,为什么我需要使用"this"?例如,我有以下代码:

public class ClassA {

    public class ClassB {

        public void bye() {
            ClassA.this.hello();
            // Why not just ClassA.hello()?
        }
    }

    public void hello() {

    }
}
Run Code Online (Sandbox Code Playgroud)

如果从我的封闭类的方法我想调用我的一个非静态类的方法我该怎么办?例如,如果从我的方法hello()我想调用bye()我应该如何键入?

JB *_*zet 6

首先,你可以简单地打电话hello().

ClassA.hello()会寻找hello()在ClassA中命名的静态方法.ClassA.this.hello()寻找实例方法.