内部类

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 中国大陆许可协议进行许可。

posted @   xiaoovo  阅读(16)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑