Java内部类

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

静态嵌套类:static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例

内部类:需要在外部类的实例化后才能实例化,其语法看起来还是很诡异的.

 

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

1.class Outer { 
23.class Inner {} 
45.public static void foo() { new Inner(); } 
67.public void bar() { new Inner(); } 
89.public static void main(String[] args) { 
10.new Inner(); 
11.} 
12.} 

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

posted @ 2019-05-24 15:44  xiejiachen  阅读(158)  评论(0编辑  收藏  举报