在Java中,内部类可以直接访问外部类的成员(包括方法和变量),即使它们被声明为私有。要从内部类调用外部类的方法,只需使用外部类名.this来引用外部类实例,然后调用所需的方法。这里有一个示例:
public class OuterClass {
private String message = "Hello from OuterClass!";
public void displayMessage() {
System.out.println(message);
}
public class InnerClass {
public void callOuterClassMethod() {
OuterClass.this.displayMessage(); // 调用外部类的方法
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.callOuterClassMethod(); // 输出 "Hello from OuterClass!"
}
}
在这个例子中,我们有一个名为OuterClass
的外部类,它有一个私有字符串变量message
和一个公共方法displayMessage()
。我们还有一个名为InnerClass
的内部类,它有一个方法callOuterClassMethod()
,该方法调用外部类的displayMessage()
方法。在main
方法中,我们创建了OuterClass
和InnerClass
的实例,并通过调用callOuterClassMethod()
方法来调用外部类的方法。