3
我嘗試設計一個關於撲克牌的項目。我有一個類卡Java中的枚舉和多態性,撲克牌示例
class Card
{
Rank rank;
Suit suit;
}
該西裝是一個枚舉。
enum Suit { .... }
Rank應該有一個方法getValue()。 我想有多個Ranks,即。 BlackJackRank和PokerRank。所以我使用方法getValue和兩個實現此接口的枚舉BlackJackRank和PokerRank創建了一個接口Rank。
enum BlackJackRank implements Rank
{
ACE(1),DEUCE(2),THREE(3) ....
private final int value;
private BackJackRank(int value) { ... }
@Override
public int getValue() { ... }
}
我的問題是我不能調用rank.name()和rank.ordinal()的卡類,因爲排名不枚舉。任何想法?
什麼是'BlackJackRank'的責任?爲什麼你喜歡將它們建模爲'enum'?也許我們可能會解決你的問題,如果我們明白你想要達到什麼,除了Java的實現。此外:'enum.values()是枚舉類型的獨佔方法,就像一個靜態方法,它只適用於你在''處調用''的類型。 – Harmlezz
這裏有一個更好的方法是依賴注入,如果你足夠關心它的學習。 –
@MichałSzydłowski:謹慎地闡述? – Thilo