我创建了一个 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);
错误指出“无法解析符号‘值’”。
我应该如何正确获取卡片的值(value)?
最佳答案
问题出在这一行:
public String figure;int value;int suit;
这实际上是一个公共(public)字段和两个包私有(private)字段,如下所示:
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());
关于java - 如果 Java 中的类对象位于对象数组中,如何获取该对象的状态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003823/