我正在写一个披萨订单程序,它接受披萨订单。 这是我的披萨程序的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;
}
}
答案 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;
}
注意:传递setType
和int
没有任何意义,这完全违背了使用enum
的目的。
答案 1 :(得分:0)
您的代码中似乎有两个问题:
getType()
返回类型应为CrustType
setType()
方法应使用实例变量crust
来分配类型,但是您传递了int
参数,我不明白您的意图