java 枚举类 扑克牌_Java中的枚举和多态,扑克牌示例
我嘗試設(shè)計(jì)一個(gè)關(guān)于撲克牌的項(xiàng)目.我有一張卡片
class Card
{
Rank rank;
Suit suit;
}
西裝是一個(gè)枚舉.
enum Suit { .... }
Rank應(yīng)該有一個(gè)方法getValue().
我希望有一個(gè)以上的排名,即. BlackJackRank和PokerRank.所以我創(chuàng)建了一個(gè)接口Rank,方法是getValue,兩個(gè)枚舉BlackJackRank和PokerRank實(shí)現(xiàn)了這個(gè)接口.
enum BlackJackRank implements Rank
{
ACE(1),DEUCE(2),THREE(3) ....
private final int value;
private BackJackRank(int value) { ... }
@Override
public int getValue() { ... }
}
我的問題是我不能在Card類中調(diào)用rank.name()和rank.ordinal(),因?yàn)镽ank不是枚舉.任何的想法?
解決方法:
現(xiàn)在,在您更改了問題后,以下是應(yīng)該有效的答案:
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;
}
}
標(biāo)簽:java,enums,polymorphism,interface
來源: https://codeday.me/bug/20190830/1771074.html
總結(jié)
以上是生活随笔為你收集整理的java 枚举类 扑克牌_Java中的枚举和多态,扑克牌示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抖音小心二次元表情包
- 下一篇: java object monitor_