Java 中的内部类被定义为在另一个类中声明的类。内部类通常用于创建辅助类,例如外部类使用的视图或适配器。内部类也可用于创建嵌套数据结构,例如链表。嵌套数据结构可以比平面数据结构更有效,并且可以导致更好的代码组织。
内部类可以是静态的或非静态的。静态内部类是使用 static 关键字声明的内部类。非静态内部类是未使用 static 关键字声明的内部类。
Java中的内部类是什么?
Java中的内部类是在另一个类(也称为外部类)中声明的,可以访问外部类的私有成员。编译器生成一个类,它是外部类的成员,并且正是这个生成的类可以访问它被创建的范围内的私有变量或方法(例如,在另一个方法内)。
静态嵌套内部类类似于其他静态成员,因为它们不能访问外部类的实例变量。相反,非静态内部类可以访问外部类的实例变量,因此能够创建外部类的实例。
根据定义的方式不同,内部类分为静态内部类、成员内部类、局部内部类和匿名内部类四种。
特点:
1 内部类是一个独立的类,在编译之后内部类会被编译成独立的class文件,其文件名的前面是外部类的类名和$符号。
2 外部类不能直接访问内部类的成员,但可以通过内部类对象来访问。
3 静态内部类不持有外部类的引用,但是普通内部类可以直接访问外部类的属性和方法。
4 普通内部类不能声明static的方法和变量。
5 静态内部类不依赖外部类,普通内部类和外部类是相互依赖的,具有相同的生命周期,也会同时被垃圾回收。