从接口中的枚举设置类中的值

时间:2017-04-18 09:54:22

标签: java class enums interface

我在制作二十一点游戏时遇到了学校任务的困难。 我们需要在界面中从面值应用分数值。我想通过编写Ace(1),Two(2)来直接修改枚举的方法......但我们不允许修改界面。还有其他方法可以应用这个值吗?

public interface PlayingCard

public enum Value
{
    Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King
};

public class PlayingCardImp implements PlayingCard {

    private Suit suit;
    private Value value;

    public PlayingCardImp (Value value, Suit suit)
      {
        this.value = value;
        this.suit = suit;
      }

    @Override
    public int getScore() 
    {   
     @return the score value of this card (Ace=1, J, Q, K=10, All others int of face value)
        return 0;
    }
}

2 个答案:

答案 0 :(得分:1)

只需致电Value.ordinal()即可获得" postion"枚举中的值,你的情况下的值是多少。

编辑为Jack,Queen和King的值为10使用此:

 public int getScore() 
     if (value == Value.Ace)
       return 1;
     if (value == Value.Jack &&  value == Value.Queen && value == Value.King)
         return 10;

     return value.ordinal()+1;

答案 1 :(得分:-1)

枚举是简单的常量。如果您不允许修改枚举,则必须使用其他数据结构(如某些键值对)维护关联值。