这是问题截选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值,结果不变,都为方块K。 System.out.println(""+l.get(1).huaSe+":"+l.get(2).dianShu);// // for(Card d :l){// System.out.println(""+d.huaSe+":"+c.dianShu);// // }// }//完整的代码:http://www.imooc.com/opus/resource?opus_id=2911
1 回答
已采纳
星箜下
TA贡献34条经验 获得超10个赞
当然就方块K了,因为你Card c = new Card() 这条语句在循环外, 也就是说只有这么一个Card,注意:List中存放的是对象的引用,如果引用相同,那add方法是不会再次执行的,它认为List中已经有了这个对象,不知道这么说你明白了没。
还有你这代码风格也得改改啊, 用拼音还不如直接用汉字命名变量呢,反正java又不是不支持。过来人的经验,我现在看我两年前写的代码真的是没法看,全是不明所以的汉语拼音.........
添加回答
举报
0/150
提交
取消