Re: [問題] primitive與refernce的問題

看板java作者 (Alien)時間16年前 (2009/07/02 11:22), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《crazykai (Gooday)》之銘言: : 最近在看Head First Java,想不到才看到第三章就卡住了 : 我的疑問是這樣的 : primitive因為是以位元組表達實際變數值,因此不用另外宣告實體 : 而物件的參考變數只是類似指標作用,因此還需宣告實體 : 但String是個物件呀,為什麼我們不會寫 : String name = new String(); : name = "crazykai" : 請大大們有空指導一下吧 <(_ _)> 對於 reference 來說, 你可以想成 = 是指把該 reference 指向某 obj instance. 第二句是 name 這 reference 指向 "crazykai" 這 個 string literal 而已. string literal 本身也是一個 object. 你上面兩句實際是發生這樣的事 (String name= new String()) 1) 生成 String() +--- String -----+ +----------------+ | | [name] +----------------+ 2) name = 該新 String obj +--- String -----+ +----------------+ --->| | [name] --/ +----------------+ (name = "crazykai") 3) name 指外另一 string object +--- String -----+ +----------------+ | | [name] -- +----------------+ \ \ +--- String -----+ \-------> +----------------+ | "crazykai" | +----------------+ 和你認知的沒有分別. 只是 String object 生成的方法 不必一定要乖乖寫 new String(), 而是單純寫 "balblabal" 就等如是 new 了一個 String instance. (其實這樣說不太正確, 因為 string literal 的情況, 是在 程式一開始就已經存在那些 string literal 的 String obj instance, 而不是用的那刻才 new. 不過簡化一點來說你應 該會比較容易理解) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

07/02 12:02, , 1F
謝謝大大的詳解 那我可以簡單的理解它為ㄧ種建構子嗎
07/02 12:02, 1F

07/02 13:02, , 2F
理解成建構子不太好. 你就當那是之前已經建立好的一個
07/02 13:02, 2F

07/02 13:03, , 3F
obj instance
07/02 13:03, 3F
文章代碼(AID): #1AJ2WAhD (java)
文章代碼(AID): #1AJ2WAhD (java)