023-普通内部类与静态内部类

本文探讨Java中的内部类,包括普通内部类和静态内部类的概念和使用场景。作者拥有20多年的软件开发经验,专注于Java教学,已制作多门涵盖基础到高级的Java课程,并提供项目实战、PPT和源码下载。欲了解更多,可访问作者的优快云在线课堂。

上一讲:022-final关键字在 java 中的作用_优快云专家-赖老师(软件之家)的博客-优快云博客

下一讲:024-继承与多态(重载与重写)案例分析_优快云专家-赖老师(软件之家)的博客-优快云博客

将一个类定义置入另一个类定义中就叫作“内部类”。
    1、利用它可对那些逻辑上相互联系的类进行分组,并可控制一个类在另一个类里的“可见性”。

    2、内部类对象保存了一个对外部类对象的引用。

    OuterClassName.this代表外部类对象的引用
    InnerClassName.this代表内部类对象的引用
    
    类中定义的内部类特点
       1、内部类可以直接访问外部类的成员,反之则不行。
       2、内部类可以声明为private或protected。
       3、内部类成员只有在内部类的范围之内是有效的。
       4.内部类不能直接创建对象,只能通过外部类的对象(实例)创建内部类的实例;
       5.外部类内部可以定义多个内部类
       6.普通内部类
Java静态内部类普通内部类存在多方面区别: ### 访问外部类成员 - 静态内部类只能访问外部类的静态成员,不能直接访问外部类的非静态成员。 - 普通内部类可以访问其所在类的所有属性,包括所在类的私有属性和静态属性。 ### 创建实例 - 静态内部类不需要依赖外部类的实例,可以直接创建静态内部类的实例。例如: ```java class Outer { static class StaticInner { void printMessage() { System.out.println("This is a static inner class."); } } } public class Main { public static void main(String[] args) { Outer.StaticInner inner = new Outer.StaticInner(); inner.printMessage(); } } ``` - 普通内部类创建自身对象需要先创建其所在类的对象。例如: ```java class Outer { class NonStaticInner { void printMessage() { System.out.println("This is a non - static inner class."); } } } public class Main { public static void main(String[] args) { Outer outer = new Outer(); Outer.NonStaticInner inner = outer.new NonStaticInner(); inner.printMessage(); } } ``` ### 静态成员定义 - 普通内部类的字段方法,只能放在类的外部层次上,所以普通内部类不能有static数据和static字段,也不能包含嵌套类。 - 静态内部类可以包含静态成员变量成员方法。 ### 文件组织形式 - 静态内部类通常外部类放在同一个文件中。 - 普通内部类也通常外部类放在同一文件中,但它是依赖于外部类实例存在的。 ### 用法场景 - 静态内部类用于表示外部类的逻辑上的一部分,通常为工具类或辅助类。 - 普通内部类更多地是用于实现一些外部类紧密相关的功能,并且需要访问外部类的非静态成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优快云专家-赖老师(软件之家)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值