内部类说明的可见性

问题描述 投票:0回答:1

我想比较两件事。我们知道:

  1. 内部类可以访问外部类的每个成员。
  2. 外部类不能访问内部类的成员。除非您创建内部类的对象。

我的问题是为什么?为什么外部类也不能访问内部类的成员?这是一个很清楚的例子:

public class OuterClass {
    String stringOuter;

    void m1(){
       //can call just stringOuter
       InnerClass i = new InnerClass();
       i.stringInner; //can call stringInner when you make object
    }

    class InnerClass{
        String stringInner;

        void m2(){
            //can call stringOuter and stringInner
            //doesn't need object from OuterClass
        }
    }
}
java scope inner-classes
1个回答
0
投票

我想类声明只是模板,并且也适用于内部类,除非您从内部类(模板)或任何其他无法实例化其成员的类实例化一个对象。静态成员例外,因为它们位于类区域中。

© www.soinside.com 2019 - 2024. All rights reserved.