如果该对象在对象数组中,如何在java中获取类对象的状态变量?

时间:2017-10-29 18:36:51

标签: java arrays

我创建了一个Card类:

公共类卡{

public Card(String f,int v,int s){
    figure = f;
    value = v;
    suit = s;
}

public String figure;int value;int suit;

}

在我的主要课程中,我使用for循环来初始化多张卡片。

    for(int i = 0;i < 52;i++){
        pokerCardsObject[i] = new Card(pokerCards[i],i%13+2,(i+2)/13);
    }

我创建一个存储所有卡的数组的原因是我希望在一个循环中初始化所有52张卡。如果我只是发起像使用

这样的牌
    Card card = new Card(pokerCards[i],i%13+2,(i+2)/13);

然后我不能将它们分开,因为它们都有相同的名片。 (我觉得我有一些误解,请纠正我,如果我错了。)

但是现在所有的牌都在我的对象数组pokerCardsObject中,当我尝试获取其中一张牌的状态变量时这样:

    System.out.println(pokerCardsObject[34].value);

错误指出“无法解析符号'值'”。

我应该如何正确获取卡片的价值?

2 个答案:

答案 0 :(得分:0)

问题在于这一行:

public String figure;int value;int suit;

这实际上是一个公共字段和两个包私有字段,如下所示:

public String figure;
int value;
int suit;

您也可以公开其他两个字段。

public String figure;
public int value;
public int suit;

但不建议将字段公开。最好使用getter(和setter,如果需要):

private String figure;
private int value;
private int suit;

public String getFigure() {
  return figure;
}

public int getValue() {
  return value;
}

public int getSuit() {
  return suit;
}

然后使用getter而不是字段来获取值:

System.out.println(pokerCardsObject[34].getValue());

答案 1 :(得分:0)

您可以访问&#34;值&#34;变量你最好在Card类中使用适当的封装+ getter和setter。

private String figure;
private int value;
private int suit;

public Card(String f,int v,int s){
figure = f;
value = v;
suit = s;
}

public String getFigure() { return figure; }
public int getValue() { return value; }
public int getSuit() { return suit; }

然后你就可以打电话了

System.out.println(pokerCardsObject[34].getValue());

希望这对你的游戏有所帮助并祝你好运!