在另一个类中创建枚举对象

时间:2015-02-25 13:09:42

标签: java enums

作为课程的一部分,我正在写一个基本的游戏。我遇到的问题是,我有一个名为ship的类,它存储了有关船舶的所有细节,当新船出现时我需要给它"保留"州。然后用户将能够委托一艘船,因此其状态将变为"活跃"。

我有一个名为ShipState的枚举类,代码如下。

public enum ShipState implements Serializable
{
    RESERVE(" In reserves"), 
    ACTIVE(" Active"), RESTING(" Resting"), 
    SUNK ("      Sunk/Lost");

    private String state;

    private ShipState(String st)
    {
        state = st;
    }

    public String toString()
    {
        return state;
    }
}

我遇到的问题是我不知道如何在我的Ship类中创建枚举对象以给出船状态"保留"。

2 个答案:

答案 0 :(得分:5)

你不必创造'枚举对象。事实上,你不能。相反,您引用在枚举中声明的(static final)实例:

//In Ship
public void setShipState(ShipState state) {
    this.state = state;
}

//In some manager class
public void putInReserve(Ship ship) {
    ship.setShipState(ShipState.RESERVE);
}

答案 1 :(得分:0)

您可以将ShipState作为Ship中的成员,只需通过发出ShipState.RESERVE即可设置值。

public static void main(String args[]){
    Ship s1 = new Ship(ShipState.RESERVE);
}
public static class Ship{
    ShipState ss;
    public Ship(ShipState ss){
        this.ss = ss;
    }
}