1. 程式人生 > >java中非靜態內部類不能有靜態程式碼塊、靜態方法、靜態變數?

java中非靜態內部類不能有靜態程式碼塊、靜態方法、靜態變數?

非靜態內部類相當於外部類中的非靜態成員變數,而如果外部類需要呼叫非靜態成員變數就需要先例項化才可以,如果非靜態內部類中有靜態方法塊,那麼又可以在載入類的時候提前載入,不需要考慮外部類的例項化,所以有矛盾,所以不可以。

為什麼非靜態內部類中可以有靜態常量?(static final)

因為常量存放在常量池中,在編譯時就已經載入進去了,所以不需要考慮是否靜態。