6.2.2 成员内部类的访问权限
内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限共四种权限。这一点与外部类的访问权限修饰不一样,外部类只能有public和包访问两种权限。由于成员内部类是外部类的一个成员,因此与类的成员一样有public,private,protected及包访问四种权限修饰。
(1)如果用public修饰,则任何地方都能访问。
(2)如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问。
(3)如果是默认的包访问权限,则只能在同一个包下访问。
(4)如果成员内部类用private修饰,则只能在外部类的内部访问,不能在其他类中通过创建外部类对象再创建内部类对象来访问。
【例6.5】
(https://www.daowen.com)
(5)如果内部类中包含有静态成员,那么Java规定内部类必须声明为静态内部类。内部类一旦用static进行修饰,则对内部类的引用类似于类中的静态成员变量与静态方法一样,可以直接用类名进行访问。如在Example6_6中创建静态内部类对象和引用静态内部类中的静态成员变量。
创建静态内部类对象的形式为:Outer.Inner in = new Outer.Inner();
引用静态内部类中的静态成员变量:System.out.println(OuterClass.InnerClass.innerNum);
【例6.6】

