【发布时间】:2021-12-20 21:37:11
【问题描述】:
对于我当前的任务,我必须创建一个程序,该程序可以制作比萨饼、选择配料、计算订单总数并将订单导出到 txt 文件。所有这些都是在 JavaFX 中使用多个控制器类完成的。
package application;
import java.util.ArrayList;
// You can add additional methods for help.
public abstract class Pizza // Abstract is used to make specific methods that will be used by other classes that are related to pizza.
{
protected ArrayList<Topping> toppings = new ArrayList<Topping>(); // How the heck do I use this???
protected Size size; // Enum Class
public abstract double price();
}
上面的代码是我的披萨课。我必须使用包含的参数,但如果需要,我可以添加更多方法。我遇到的问题是使用必须具有“Topping”项目集合的 ArrayList。这是我们第一次使用 ArrayList(他们从来没有教过我们如何正确使用它,这真的很糟糕)所以我用浇头列表创建了一个枚举类。
package application;
public enum Topping
{
Pepperoni, Sausage, Chicken, Beef, Ham, GreenPepper, Onion, Mushroom, Pinapple, BlackOlives;
}
但现在我不知道我应该如何使用 ArrayList。例如,对于特定类型的比萨(豪华、夏威夷、意大利辣香肠),我的比萨类具有继承类。下面的代码是它现在的样子的一个例子。我希望豪华比萨饼的配料从鸡肉、蘑菇、青椒、香肠和洋葱开始。然后用户将能够在主程序中添加或删除浇头。
package application;
public class PizzaDeluxe extends Pizza
{
@Override
public double price()
{
return 0;
}
}
如何让豪华比萨课从某些配料开始?在我这样做之后,我如何能够删除或添加某些浇头?最后,我如何获得披萨上的配料信息列表?
【问题讨论】:
-
声明应该是
List<Topping>,因为你应该总是program to the interface, not the implementation。您说他们从未教过您如何正确使用它,但是您是否查看过List或ArrayList的文档?这将是一个很好的起点。 -
另外,对于学校项目而言,这可能并不重要,但 double is not suitable 代表金钱。最好将整数美分存储在
int或long中,或者改用BigDecimal。但您可以稍后再担心。 -
如果你不知道如何在学校项目的代码中使用某些东西,也许你应该先问问你的导师/老师?
-
请保持标签的重点——这是基本的java,与fx、fxml或css没有任何关系