成员内部类、局部内部类、静态内部类、匿名内部类
时间: 2023-09-02 12:08:05 浏览: 82
成员内部类、局部内部类、静态内部类和匿名内部类是Java中的四种内部类。
成员内部类是作为外部类的一个成员存在的,没有static修饰。它可以访问外部类的静态成员和非静态成员。创建成员内部类的对象需要通过外部类的对象来调用。
局部内部类是定义在方法或代码块内部的类,它只在所在的方法或代码块中可见。局部内部类可以访问外部类的静态成员和非静态成员,但是只能在所在的方法或代码块中使用。
静态内部类是使用static修饰的内部类,它不再包含外部类的this指针,并且在外部类加载时初始化。静态内部类可以包含静态成员和非静态成员,但是只能访问外部类的静态成员。创建静态内部类的对象不需要外部类的对象,可以直接使用外部类名来调用。
匿名内部类是没有名字的内部类,它通常用于创建只需要使用一次的类。匿名内部类可以继承一个类或实现一个接口,并且可以在创建对象的同时实现类或接口的方法。匿名内部类没有构造方法,它的对象是通过实例化一个接口或抽象类来创建的。
总结来说,成员内部类是外部类的一个成员,局部内部类是定义在方法或代码块内部的类,静态内部类是使用static修饰的内部类,匿名内部类是没有名字的内部类。它们各自有不同的特点和用途。
#### 引用[.reference_title]
- *1* [内部类之静态内部类、成员内部类、局部内部类、匿名内部类](https://blog.csdn.net/SeniorShen/article/details/102512737)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Java 内部类介绍](https://blog.csdn.net/iteye_11325/article/details/81785454)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [内部类(成员内部类+局部内部类+静态内部类+匿名内部类)](https://blog.csdn.net/qq_51768153/article/details/125222397)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]