2018Java面试必备-内部类(Inner Class)实际案例

面试题1、静态嵌套类(Static Nested Class)和内部类(Inner 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();

}

}

上述代码中,foo()方法和main()方法都是静态方法,静态方法中没有this,也就是说没有所谓的外部类对象,因此无法创建内部类对象,如果要在静态方法中创建内部类对象,可以按如下方法做:

new Outer().new Inner();

2018Java面试必备-内部类(Inner Class)实际案例

2018Java面试必备-内部类(Inner Class)实际案例


分享到:


相關文章: