Inner Class和Static Nested Class的区别是什么

参考答案

Inner Class和Static Nested Class的区别:

Inner Class:内部类

  • 内部类是在一个类的内部定义的类;
  • 内部类中不能定义静态成员;
  • 内部类能直接访问外部类中的成员变量;
  • 在方法体外面定义的内部类的访问类型,可以是 public、protected 、 默认、private 等 4 种类型;
  • 方法内部定义的内部类前面,不能有访问类型修饰符,可使用 final 或 abstract 修饰符;
  • 内部类可以定义在外部类的方法外面,也可以定义在外部类的方法体中;
  • 创建内部类的实例对象时,一定要先创建外部类的实例对象,再用这个外部类的实例对象去创建内部类的实例对象;
  • 内部类里还包含匿名内部类,即直接对类或接口的方法进行实现,不用单独去定义内部类。
//内部类的创建语法
Outer outer = new Outer();
Outer.Inner inner = outer.new Innner();

Static Nested Class:静态嵌套类

  • 不依赖于外部类的实例对象;
  • 不能直接访问外部类的非 static 成员变量;
  • 能直接引用外部类的static的成员变量,不需要加上外部类的名字;
  • 在静态方法中定义的内部类,也是Static Nested Class。
//静态内部类创建语法
Outter.Inner inner = new Outter.Inner();

以上,是Java面试题【Inner Class和Static Nested Class的区别是什么】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧