成员内部类、静态内部类、接口内部类、局部内部类、匿名内部类
时间: 2023-09-04 13:10:22 浏览: 136
成员内部类是存在于某个类的内部,与全局属性或者方法同级的内部类。它可以直接调用外部类的所有方法,包括静态方法和非静态方法。一个例子是在Person类中定义了一个成员内部类DoWork,它实现了接口Work。\[1\]
静态内部类是定义在外部类内部的静态类。它可以直接访问外部类的非静态成员。静态内部类与外部类之间没有直接的关联,可以通过外部类名来访问静态内部类。\[2\]
接口内部类是定义在接口内部的类。它可以被实现该接口的类所使用。接口内部类的特点是没有构造器,它在编译时会自动起名为xxx$1.class。\[3\]
局部内部类是定义在方法内部的类。它只能在方法内部使用,并且只有在方法的局部变量被标记为final或者是effectively final的情况下,内部类才能使用这些局部变量。\[2\]
匿名内部类是一种没有构造器的类,它通常用于接口返回。匿名内部类不能存在任何静态的变量或方法,它是局部内部类的特例。在编译时,编译器会自动为匿名内部类起一个名字,例如xxx$1.class。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?](https://blog.csdn.net/sulixu/article/details/120028541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文