10.java SE內(nèi)部類

1.靜態(tài)嵌套類 (Static Nested Class) 和內(nèi)部類(Inner Class)的不同?

靜態(tài)嵌套類:Static Nested Class 是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例被實(shí)例
化。
內(nèi)部類:需要在外部類實(shí)例化后才能實(shí)例化,其語法看起來挺詭異的。

2.下面的代碼哪些地方會(huì)產(chǎn)生編譯錯(cuò)誤?

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

注意:Java 中非靜態(tài)內(nèi)部類對(duì)象的創(chuàng)建要依賴其外部類對(duì)象,上面的面試題中 foo 和 main 方法都是靜態(tài)方
法,靜態(tài)方法中沒有 this,也就是說沒有所謂的外部類對(duì)象,因此無法創(chuàng)建內(nèi)部類對(duì)象,如果要在靜態(tài)方法中創(chuàng)建內(nèi)部類對(duì)象,可以這樣做

new Outer().new Inner();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容