我在Java中有两个类:
public class DeckOfCards {
private ArrayList<Card> deck;
private int currentCard;
public DeckOfCards() {
this.deck = new ArrayList<>();
this.currentCard = 0; // first Card dealt will be deck[0]
}
}
和
public class CardPlayer {
private enum PLAYER_TYPE {PERSON, COMPUTER};
private PLAYER_TYPE player;
private DeckOfCards deck;
private int currentSum;
public CardPlayer(int playerType) {
this.player = PLAYER_TYPE.PERSON;
this.deck = initializeDeckField();
}
private static final DeckOfCards initializeDeckField() {
DeckOfCards d = new DeckOfCards();
return d;
}
}
CardPlayer
对象的一个字段是DeckOfCards
对象。我想知道是否有一些方法可以直接在DeckOfCards
构造函数中使用CardPlayer
构造函数来初始化deck
的{{1}}字段。
到目前为止,我找到的唯一解决方案是使用另一个函数来执行此操作。有没有更好的方法或更正确的方法?
答案 0 :(得分:2)
每个CardPlayer
都有DeckOfCards
,所以为什么不从牌组继承玩家。
public class CardPlayer extends DeckOfCards
当你实例化一个玩家时,你也会创建他的相关套牌。
public CardPlayer(int playerType) {
super();
this.player = PLAYER_TYPE.PERSON;
this.deck = initializeDeckField();
}