Re: [問題] extends inner class

看板java作者 (Alien)時間16年前 (2009/06/11 10:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《sansea (痕天)》之銘言: : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.120.210.186 : 推 Fenikso:Test()的第一行加上 new Circle().super(1, 2); 06/10 22:11 : → Fenikso:non-static inner class需要一個outer class的instance 06/10 22:12 樓上說的, syntax 上是正確. 但感覺上就像, 有人問我寫了一個 method (instance method) 沒法 call, 要怎辦, 然後回答說: 就 new MyObj().method() 就 好了 我之前有說過類似的東西: 一個 method (或這裡, inner class) 是不是 instance method, 要看的是它目的是不是在操作該 object 本身, 是的話, 那很自然就要寫 instance method, 反之則是 static. 要人寫 new MyObj().method() 很明顯 就是 syntax 對但概念錯的答案了, 既然為了 call method(), 只是隨便 instantiate 一個 MyObj 就行了, 裡面也沒有特別 需要操作某 MyObj instance, 那為什麼不乾脆寫成 static method? 同理, 原 po 的 inner class, 沒需要操作 outer class, 那 很明顯就是應該作為 static inner class. 硬叫他寫 new Outer().super() 我覺得是本末倒置了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (06/11 10:58)

06/11 12:02, , 1F
懂了 謝謝各位的回答~~
06/11 12:02, 1F
文章代碼(AID): #1AC7AsW_ (java)
文章代碼(AID): #1AC7AsW_ (java)