Java内部类分为静态内部类与非静态内部类。静态内部类在权限访问上更广泛,可具public、protected、默认与private,而非静态内部类仅限public与protected或默认访问。实例化方面,静态内部类可独立实例化,通过类名直接访问;而非静态内部类必须依赖外部类实例,仅在外部类实例方法内创建。静态内部类与外部类...
java中静态内部类和非静态内部类到底有什么区别?
Java内部类分为静态内部类与非静态内部类。静态内部类在权限访问上更广泛,可具public、protected、默认与private,而非静态内部类仅限public与protected或默认访问。
实例化方面,静态内部类可独立实例化,通过类名直接访问;而非静态内部类必须依赖外部类实例,仅在外部类实例方法内创建。
静态内部类与外部类无直接联系,仅存在于外部类中;而非静态内部类能访问外部类成员与方法,并可通过外部类引用访问外部类成员。
举例说明,非静态内部类适合在需访问外部类实例场景下使用,如事件监听器;静态内部类则适用于无需访问外部类实例,实现独立功能的场景,如工具类。静态内部类实例化无需外部类实例,通过类名即可访问。
静态代码块与静态类、静态导入等主题,详情请参阅>>> 从零开始学Java—静态代码块和静态类、静态导入 - 知乎 (zhihu.com)2024-08-23