Re: [問題] 初學者的幾點小疑問

看板java作者時間19年前 (2007/01/22 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/7 (看更多)
※ 引述《war3rd.bbs@ptt.cc (war3rd)》之銘言: > 以下這二支小程式.... > 程式一: > public static void main (String[] args){ > Integer n1 = new Integer(47); > Integer n2 = new Integer(47); > System.out.println(n1==n2); > Integer i1 = 47; > Integer i2 = 47; > System.out.println(i1==i2); > Integer p1 = 147; > Integer p2 = 147; > System.out.println(p1==p2); > } > } > 因為小弟剛接觸java(自修) 如果覺得問題太蠢還請見諒 > 問題1:為何n1==n2(結果:false)而i1==i2(結果:true) 他們的值不是都相等嗎? > 還是Integer oo = new Integer (xx) 與 Integer oo = xx 二種方式有哪不同嗎? > 問題2: 那又為啥同樣是 Integer oo = xx 的方式 > i1==i2(ture) 而p1==p2(false) 這又是為啥?我只不過數字修正了一下 程式二: class Letter { char c; } public class test{ static void f(Letter y) { <---接收引數把其代入y物件 y.c='Z'; <---用y物件(此時y物件為Letter類別下的東西),故又可指定c的 } 值 public static void main (String[] args){ <---程式從這裡開始執行 Letter x= new Letter(); <---宣告了一個Letter類別的物件x x.c= 'a'; <--用x物件來指定Letter類別的實體變數c的初值為a System.out.println("1:x.c: "+x.c); <---第一次輸出c故其值為a f(x); <---呼叫f方法,引數為x物件,請看f方法的註解 System.out.println("2:x.c: "+x.c); <--第2次輸出c的值,已因呼叫方法而 } 變動為Z } > 問題3: 為何第二次的輸出 x.c的字元是Z 而不是a 呢? > ps: 如果有有違反板規請告知 我會自d的(因為不知算不算是作業文^^u) -- ┌─────KKCITY─────┐ KKBOX歌名歌手歌詞專輯搜尋 bbs.kkcity.com.tw http://www.kkbox.com.tw └──From:220.138.53.44 ──┘ 超過80家唱片公司合法授權 音樂盡情下載 --
文章代碼(AID): #15iwfb00 (java)
文章代碼(AID): #15iwfb00 (java)