Re: [問題] inner class和shadow的幾個問題

看板java作者 (snowlike)時間16年前 (2010/04/03 16:45), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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
那寫上EC.x和寫上EC.this.x不是都一樣嗎?為什麼this不
04/03 17:16, 1F

04/03 17:17, , 2F
用static呢?
04/03 17:17, 2F

04/03 20:51, , 3F
請詢問老師或課本ClassName.member和this.member的差別
04/03 20:51, 3F
文章代碼(AID): #1Bjm0Ztr (java)
文章代碼(AID): #1Bjm0Ztr (java)