使用" get"时遇到问题ArrayList类中的方法。
主要方法是在ArrayList中创建一副牌,然后显示所有牌。我正在寻找一个解释,说明我为什么会在" d.get(i)"而它是我的主要方法(游戏类)。如果我在甲板课上使用它,它可以正常工作。
游戏课程:
package game;
import java.util.*;
public class Game {
public static void main(String[] args) {
/*Card f = new Card(2,7);
System.out.println(f.toString());*/
Deck d = new Deck();
int i = 0;
while(i < 52)
{
//where error occurs:
Card k = d.get(i);//get is underlined red
System.out.println(d.toString());
i++;
}
}
}
卡类:
package game;
public class Card {
private int suit, value;
private String[] cardSuit = {"Spades", "Diamonds", "Hearts", "Clubs"};
private String[] cardValue = {"Ace", "King", "Queen", "Jack", "10",
"9", "8", "7", "6", "5", "4", "3", "2"};
public Card(int cSuit, int cValue)
{
suit = cSuit;
value = cValue;
}
public String toString()
{
String cardInfo = cardValue[value] + " of " + cardSuit[suit];
return cardInfo;
}
public int getValue()
{
return value;
}
public int getSuit()
{
return suit;
}
}
甲板课程:
package game;
import java.util.*;
public class Deck {
private ArrayList<Card> deck;
public Deck(){
deck = new ArrayList<>();
for(int i = 0;i<4;i++){
for(int j = 0;j<13;j++){
deck.add(new Card(i,j));
}
}
}
}
答案 0 :(得分:1)
我认为你打算这样做:
Card k = d.getCards().get(i);
当然,首先您必须在课程getCards()
中实施Deck
方法:
public ArrayList<Card> getCards() {
return deck;
}
答案 1 :(得分:1)
您应该制作一个方法来实际获取您的Card ArrayList:
package game;
import java.util.*;
public class Deck {
private ArrayList<Card> deck;
public Deck(){
deck = new ArrayList<>();
for(int i = 0;i<4;i++){
for(int j = 0;j<13;j++){
deck.add(new Card(i,j));
}
}
}
public ArrayList<Card> getDeck() {
return deck;
}
}
答案 2 :(得分:1)
您可以为ArrayList
类中的Deck
实现getter,也可以向Deck
类添加get方法并委托给ArrayList
:
public Card get(int index) {
return this.deck.get(index);
}