内部类
Java实例内部类
(1)在外部类的静态方法和外部类以外的其他类中,必须通过外部类的实例创建内部类的实例。
public class External { class Inner { } Inner inner = new Inner(); public void func1() { Inner inner = new Inner(); } public static void main(String[] args) { Inner inner = new External().new Inner(); } class Inner2 { Inner inner = new Inner(); } } class Other { External.Inner inner = new External().new Inner(); }
(2)在实例内部类中,可以访问外部类的所有成员。
(3)在实例内部类中不能定义 static 成员,除非同时使用 final 和 static 修饰。
静态内部类
(1)在创建静态内部类的实例时,不需要创建外部类的实例。
(2)静态内部类中可以定义静态成员和实例成员。外部类以外的其他类需要通过完整的类名访问静态内部类中的静态成员,如果要访问静态内部类中的实例成员,则需要通过静态内部类的实例。
(3) 静态内部类可以直接访问外部类的静态成员,如果要访问外部类的实例成员,则需要通过外部类的实例去访问。
public class External { static class Inner { } Inner inner = new Inner(); public void func1() { Inner inner = new Inner(); } public static void main(String[] args) { Inner inner = new Inner(); } class Inner2 { Inner inner = new Inner(); } } class Other { External.Inner inner = new External.Inner(); }
本文作者:xiaoovo
本文链接:https://www.cnblogs.com/xiaoovo/p/17404040.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步