java中类和方法都不允许嵌套定义_嵌套类(Nested Classes)

274b22f281f2c971aaa8915efe4a5357.png

概述

Java允许在一个类的内部定义一个类,这样的类称为嵌套类。例:

class OuterClass {
    ...
    class NestedClass {
        ...
    }
}

嵌套类分为两类:静态和非静态。 用static 修饰的嵌套类称为静态嵌套类,未使用static修饰的嵌套类称为内部类。

class OuterClass {
    ...
    static class StaticNestedClass {
        ...
    }
    class InnerClass {
        ...
    }
}

嵌套类是其所在类的成员。非静态嵌套类(内部类)可以访问所在类的其他成员(包括用private修饰的)。 静态嵌套类不能访问所在类的其他成员。嵌套类可以拥有private, public, protected, or package private等访问权限。 (外部类只能有public 或 package private两种访问权限)

使用内部类的原因

  1. 将仅在一处使用的类整合到使用该类的类中:若一个类仅对某个类有用,则直接将其嵌入该类中,让两个类耦合不失为一种合理的选择。使用这种嵌入式的“帮助

版权声明:本文为weixin_39945475原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。