1.這個代碼錯誤原因是什么?2.如果是內(nèi)部類的問題,為什么創(chuàng)建內(nèi)部類對象c1,c2和訪問內(nèi)部類成員變量的時候,不提示錯誤?該怎么修改呢?謝謝各位
1 回答

宇哥sss丶
TA貢獻(xiàn)2條經(jīng)驗 獲得超0個贊
第一個錯誤:java成員內(nèi)部類中不能用靜態(tài)變量。具體原因是:靜態(tài)變量是要占用內(nèi)存的,在編譯時只要是定義為靜態(tài)變量了,系統(tǒng)就會自動分配內(nèi)存給他,而內(nèi)部類是在宿主類編譯完編譯的,也就是說,必須有宿主類存在后才能有內(nèi)部類,這也就和編譯時就為靜態(tài)變量分配內(nèi)存產(chǎn)生了沖突,因為系統(tǒng)執(zhí)行:運行宿主類->靜態(tài)變量內(nèi)存分配->內(nèi)部類,而此時內(nèi)部類的靜態(tài)變量先于內(nèi)部類生成,這顯然是不可能的,所以不能定義靜態(tài)變量!
第二個錯誤:是因為創(chuàng)建內(nèi)部類對象時,必須先創(chuàng)建外部類的對象。這是因為非靜態(tài)內(nèi)部類對象有著指向其外部類對象的引用??梢韵扔涀。阂獎?chuàng)建內(nèi)部類對象就要先創(chuàng)建相應(yīng)外部類的對象。
具體代碼:
希望可以幫到你喲~
添加回答
舉報
0/150
提交
取消