這是問題截選public void add(){ ?DianShu b= new DianShu(); ?HuaSe a= new HuaSe(); ?Card c = new Card(null,null); ?int m=0; ?for(int i=0;i<4;i++){ ? c.huaSe= new String(a.a.get(i)); ? for(int j=0;j<13;j++){ ? ?c.dianShu= new String(b.a.get(j)); ? ?l.add(c); ? ? ? ?System.out.println(""+l.get(m).huaSe+":"+l.get(m).dianShu); ? ?m++; ? System.out.println("添加了卡牌:"+c.huaSe+":"+c.dianShu); ? } ? ? ?}// 問題就在下一行輸出,改變l的get的方法的int 的value值,結(jié)果不變,都為方塊K。 ?System.out.println(""+l.get(1).huaSe+":"+l.get(2).dianShu);// // ?for(Card d ?:l){// ? System.out.println(""+d.huaSe+":"+c.dianShu);// ? // ?}// ? }//完整的代碼:http://idcbgp.cn/opus/resource?opus_id=2911
1 回答
已采納

星箜下
TA貢獻34條經(jīng)驗 獲得超10個贊
當然就方塊K了,因為你Card c = new Card() 這條語句在循環(huán)外, 也就是說只有這么一個Card,注意:List中存放的是對象的引用,如果引用相同,那add方法是不會再次執(zhí)行的,它認為List中已經(jīng)有了這個對象,不知道這么說你明白了沒。
還有你這代碼風格也得改改啊, 用拼音還不如直接用漢字命名變量呢,反正java又不是不支持。過來人的經(jīng)驗,我現(xiàn)在看我兩年前寫的代碼真的是沒法看,全是不明所以的漢語拼音.........
添加回答
舉報
0/150
提交
取消