面試題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();
閱讀更多 紅魚程序員生活 的文章