10.java SE内部类

1.静态嵌套类 (Static Nested Class) 和内部类(Inner Class)的不同?

静态嵌套类:Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例
化。
内部类:需要在外部类实例化后才能实例化,其语法看起来挺诡异的。

2.下面的代码哪些地方会产生编译错误?

class Outer {
 class Inner {}
  public static void foo() { new Inner(); }
  public void bar() { new Inner(); }
  public static void main(String[] args) {new Inner();}
}

注意:Java 中非静态内部类对象的创建要依赖其外部类对象,上面的面试题中 foo 和 main 方法都是静态方
法,静态方法中没有 this,也就是说没有所谓的外部类对象,因此无法创建内部类对象,如果要在静态方法中创建内部类对象,可以这样做

new Outer().new Inner();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。