java 枚举类 扑克牌_Java中的枚举和多态,扑克牌示例
我嘗試設計一個關于撲克牌的項目.我有一張卡片
class Card
{
Rank rank;
Suit suit;
}
西裝是一個枚舉.
enum Suit { .... }
Rank應該有一個方法getValue().
我希望有一個以上的排名,即. BlackJackRank和PokerRank.所以我創(chuàng)建了一個接口Rank,方法是getValue,兩個枚舉BlackJackRank和PokerRank實現了這個接口.
enum BlackJackRank implements Rank
{
ACE(1),DEUCE(2),THREE(3) ....
private final int value;
private BackJackRank(int value) { ... }
@Override
public int getValue() { ... }
}
我的問題是我不能在Card類中調用rank.name()和rank.ordinal(),因為Rank不是枚舉.任何的想法?
解決方法:
現在,在您更改了問題后,以下是應該有效的答案:
class Card & Rank> {
private final T rank;
public Card(T rank) {
this.rank = rank;
}
public int getRankOrdinal() {
return rank.ordinal();
}
public int getRankValue() {
return rank.getValue();
}
}
interface Rank {
public int getValue();
}
enum BlackJackRank implements Rank {
ACE(1);
private final int value;
private BlackJackRank(int value) {
this.value = value;
}
@Override public int getValue() {
return value;
}
}
標簽:java,enums,polymorphism,interface
來源: https://codeday.me/bug/20190830/1771074.html
總結
以上是生活随笔為你收集整理的java 枚举类 扑克牌_Java中的枚举和多态,扑克牌示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抖音小心二次元表情包
- 下一篇: Win7如何美化输入法图标色彩(iSli