Re: [問題] inner class和shadow的幾個問題
※ 引述《fireballboy (火球男兒)》之銘言:
: public class EnclosingClass {
: private String someMember = "Some Member";
: //製造一個innerclass
: private class InnerClass {
: private String someMember = "Inner Member";
: public void doIt( ) {
: System.out.println(someMember);
: System.out.println(EnclosingClass.this.someMember);
: }
: }
: //主程式
: public static void main(String[] args) {
: //new出inner class
: EnclosingClass outerObj = new EnclosingClass();
: EnclosingClass.InnerClass inner = outerObj.new InnerClass();
: }
: }
首先 new 不是誰的方法,可能因為看法分段錯誤的關係
從宣告的方式來看 EC.IC inner = outerObj.new IC();
//or = new EC().new IC();
 ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ 應該要這樣看才對
那麼可以知道java裡面必須存在外面的 class 後才宣告裡面的 inner class
也就說他們是一對多的關係
除非 inner class 宣告為 static 能夠寫成 = new EC.IC();
再來是 this 標示為當前的參考,採用EC.this存取EC的當前參考
搭配宣告方式應該不難理解
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.184.50
※ 編輯: snowlike 來自: 114.33.184.50 (04/03 16:45)
推
04/03 17:16, , 1F
04/03 17:16, 1F
→
04/03 17:17, , 2F
04/03 17:17, 2F
→
04/03 20:51, , 3F
04/03 20:51, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):