我正在写披萨订单程序,我应该使用枚举来做我的地壳类?

时间:2014-02-16 01:49:55

标签: java enums

我正在写一个披萨订单程序,它接受披萨订单。 这是我的披萨程序的Crust课程。我们被告知要使用enum,但我已经尝试过了 这个,但我不这么认为。

Crust.java:19: error: incompatible types return crust; ^ required: Crust found: CrustType Crust.java:27: error: cannot find symbol crust = CrustType.type; ^ symbol: variable type location: class CrustType 2 errors

public class Crust
{   
    private enum CrustType {thin,hand,pan};
    //check crust type??
    private char size;`
    `//enum (crustType)`

    private CrustType crust;
    public Crust()
    {
    size = 'S';
        crust = CrustType.thin;
    }
    public char getSize()
    {
    return size;
    }
    //instead of enum
    public Crust getType()
    {
        return crust;
    }
    public void setSiz(char size)
    {
        this.size = size;
    }
    //This class sets the crust (enum) type what the user wants I'm not sure 
    //I'm not sure what type of should I pass to this method?
    public void setType(int type)
    {
        CrustType = type;
    }
}

2 个答案:

答案 0 :(得分:2)

几个问题。首先,如果你想在课外使用CrustType,你需要公开它:

public enum CrustType {thin,hand,pan};

接下来,getType应返回CrustType

public CrustType getType()
{
    return crust;
}

最后,setType CrustType并将其设为crust

public void setType(CrustType type)
{
    crust = type;
}

注意:传递setTypeint没有任何意义,这完全违背了使用enum的目的。

答案 1 :(得分:0)

您的代码中似乎有两个问题:

  1. getType()返回类型应为CrustType

  2. setType()方法应使用实例变量crust来分配类型,但是您传递了int参数,我不明白您的意图