比萨饼班。添加一个名为SetOfTopings的集作为属性。使用Java
我基本上需要在我已经拥有的基础上添加一套,以便“客户”在比萨饼制作完成后添加或移除配料。以下是我已经拥有的:比萨饼班。添加一个名为SetOfTopings的集作为属性。使用Java,java,enums,set,Java,Enums,Set,我基本上需要在我已经拥有的基础上添加一套,以便“客户”在比萨饼制作完成后添加或移除配料。以下是我已经拥有的: package pizza; public class Pizza { // Declare enums public enum Size{ SMALL, MEDIUM, LARGE, JUMBO } public enum Crust{ CHEESY, HAND_TOSSEDS, THIN_AND_CRISPY, DEEP_PAN
package pizza;
public class Pizza {
// Declare enums
public enum Size{
SMALL,
MEDIUM,
LARGE,
JUMBO
}
public enum Crust{
CHEESY,
HAND_TOSSEDS,
THIN_AND_CRISPY,
DEEP_PAN
}
public enum Topping{
MUSHROOMS,
GREEN_PEPPERS,
HAM,
PEPPERONI,
SAUGSAGE
}
// declare variables
private Size pizzaSize;
private Crust crustType;
private Set<Topping> setOfToppings = new EnumSet<Topping>(Topping.class);
public Pizza(){
}
public Pizza(Size pizzaSize, Crust crustType) {
this.pizzaSize = pizzaSize;
this.crustType = crustType;
}
public Size getPizzaSize() {
return pizzaSize;
}
public void setPizzaSize(Size pizzaSize) {
this.pizzaSize = pizzaSize;
}
public Crust getCrustType() {
return crustType;
}
public void setCrustType(Crust crustType) {
this.crustType = crustType;
}
public String toString(){
return "A "+pizzaSize+" Pizza with "+crustType+" crust" + "with topping: " + setOfToppings;
}
}
我现在的代码非常好用,我只需要帮助添加一个额外的Enum浇头,并添加一个名为SetOfTopings的集合,这样当我测试它时,“客户”可以在创建比萨饼后添加或删除浇头。提前谢谢,我对java还比较陌生,所以欢迎提供任何提示或建议
[…]我只需要添加额外的枚举浇头的帮助
与定义其他枚举的方式相同:
public enum Topping {
PINEAPPLE,
BANANA
}
[…]并添加名为setOfToppings的集合
然后添加一个字段:
private Set<Topping> setOfToppings = EnumSet.noneOf(Topping.class);
privatesesetoftoppings=EnumSet.noneOf(Topping.class);
您可以创建访问方法,例如
public void addTopping(Topping topping) {
setOfToppings.add(topping);
}
public Set<Topping> getToppings() {
return setOfToppings;
}
public void addManyToppings(Topping... toppings) {
setOfToppings.addAll(Arrays.asList(toppings));
}
public void addTopping(Topping-Topping){
设置浇头。添加(浇头);
}
公共集getToppings(){
回位设置;
}
公共空白添加许多标签(顶部…顶部){
setOfToppings.addAll(Arrays.asList(toppings));
}
添加字段时出错:private Set setOfToppings=new EnumSet(Topping.class);这样说:无法实例化EnumSetType。我应该如何将浇头添加到测试部分?谢谢你的帮助!谢谢你的更新,你能给我举个例子说明你添加一套的意思吗?例如,你可以doubleCheese.addTopping(Topping.BANANA)
。您可能需要更新toString
方法并添加带有topping的:“+setOfTopping
。很抱歉,我的意思是,为了添加一个名为setOfToppings的集合,所以我会进行批萨。为每个topping添加topping(topping.蘑菇)?
public void addTopping(Topping topping) {
setOfToppings.add(topping);
}
public Set<Topping> getToppings() {
return setOfToppings;
}
public void addManyToppings(Topping... toppings) {
setOfToppings.addAll(Arrays.asList(toppings));
}