黑马程序员技术交流社区

标题: 类类型数组的初始化 [打印本页]

作者: 黑马-刘心武    时间: 2012-9-6 10:45
标题: 类类型数组的初始化
本帖最后由 黑马-刘心武 于 2012-9-6 23:31 编辑

以下程序是获得一副扑克牌,每一张扑克是一个扑克牌对象
  1. class Pokers{
  2.     String color;
  3.     String num;
  4. }

  5. class PokerFactory{
  6.     Pokers[] arrPoker = new Pokers[52];
  7.     public void createPoker(){//创建扑克牌
  8.     int index = 0;
  9.     for(int i=0;i<PokerTools.arrColor.length;i++){
  10.         for(int j=0;j<PokerTools.arrNum.length;j++){
  11.            arrPoker[index] = new Pokers();//为什么要循环一次都初始化次,能不能对整个数组元素一次性初始化?
  12.            arrPoker[index].color=PokerTools.arrColor[i];
  13.            arrPoker[index].num = PokerTools.arrNum[j];
  14.            index++;
  15.        }
  16.     }
  17. }

  18. class PokerTools{
  19.     public static String[] arrColor= {"黑桃","红桃","梅花","方片"};
  20.     public static String[] arrNum = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
  21. }

复制代码
以上是用查表法来实现给扑克对象赋以花色和数字,在类PokerFactory中定义了Pokers类型数组,但是每一次赋值前都得对数组元素先声明一个Pokers对象,
能不能使数组所有元素元素一次性初始化为Pokers对象?

作者: 袁艳超    时间: 2012-9-6 11:07
要给数组显示初始化,肯定使用循环
可以把初始化数组的循环写到PokerFactory类的构造方法里:
public PokerFactory(){               
        for(int i = 0;i<arrPoker.length;i++){
        arrPoker[i] = new Pokers();
        }
}
作者: 武庆东    时间: 2012-9-6 11:46
这个不可以!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2