Java枚举,方法和类的问题

时间:2014-10-11 18:43:33

标签: java

我必须为课程编写程序,以学习类,字段,方法和枚举。 我失去了大部分时间,课堂上学着这些东西感到匆匆忙忙,并且在课堂上只给出了几个例子,无关,没有作业。我相信我有构造函数,并且可能有正确的toString位。到目前为止,完整的指示和我的代码如下。如果可能的话,我宁愿不仅仅给出完整的答案,我想尝试通过它并从中学习。

我现在的具体问题是:

  1. 如何将下面的addTopping位合并到代码中?
  2. 它去哪了,哪些部分需要改变?
  3. 我对所有东西都有价格,我把它放在哪里?
  4. 非常感谢一些起点的开始。

    哦,我公开使用public,因为虽然在课堂上提到私有,但是从来没有真正告诉过是否有一个特定的协议可供使用。

    方向是:

      

    对于你的下一个作业,你要创建一个代表比萨饼的课程,然后写一个主程序来练习你的课程。披萨具有以下特性:

         
        
    • 尺寸:小,中或大。

    •   
    • 以下列表中的许多浇头(从0到3):意大利辣香肠,香肠,肉丸,青椒,洋葱,黑橄榄和蘑菇。

    •   
    • 价格。

    •   
         

    您需要一个比萨大小的字段和每个可能的顶部的字段(因此另外四个字段)。价格不应存储在字段中,而应使用其他字段的值进行计算。披萨类将需要一个额外的字段来存储披萨上的浇头数量。

         

    您的披萨类应该有以下方法:

         
        
    • void addTopping(Topping topping)//添加顶部。如果披萨已经有四个浇头,这是一个错误。

    •   
    • int getPrice()//计算并返回比萨饼和浇头的价格。

    •   
    • String toString()//返回描述披萨的字符串。

    •   
         

    此外,该课程应该有施工人员制作零顶披萨,一顶披萨,两顶披萨和三顶披萨(总共四个施工人员)。   除了课程,您还应该编写一个测试程序(您可以使用披萨类的主要方法)来测试您的所有方法。
      此外,该程序应以有意义的方式使用枚举。

    到目前为止我的代码是:

    enum Size {SMALL, MEDIUM, LARGE};
    
    public class Pizza {  
      public String size;
      public String topping1;
      public String topping2;
      public String topping3;
    
    
      public String toString() {
        return (size + " " + topping1 + " " + topping2 + " " + topping3);
    }
    
      public Pizza(String a, String b, String c, String d) {
        size = a;
        topping1 = b;
        topping2 = c;
        topping3 = d;
    }
    
      public Pizza(String a, String b, String c) {
        this (a, b, c, null);
    }
    
      public Pizza(String a, String b) {
        this (a, b, null);
    }
      public Pizza(String a) {
        this (a, null);
    }
    
    
      public static void main(String[] args) {
    
       }
    }
    

2 个答案:

答案 0 :(得分:1)

我相信你要为3种可能的浇头制作一个枚举,然后将它们视为枚举而不是字符串。这种“iilegal”值的方式可以给你的构造函数(例如“asdasd”作为你明显不想得到的顶部)。

如果你不知道我在谈论什么,你应该搜索enum并阅读它,但一般来说,最基本的语法是:

enum E {
    A, B, C
}

然后我可以将它用作类型(就像int,String等)。例如:

public void foo(E e) {
    //do something
}

并且此函数只会获得一个E类型的变量作为参数,它可以是我们定义的A,B或C.

您获得了实现接口所需的方法(这意味着 - 它们的名称,参数和返回值类型)。使用这些作为您的代码结构并根据它实现代码。

在一个侧节点上,将类数据成员公开是非常糟糕的做法是大多数情况。除非你100%确定自己在做什么,否则总是让它们变得私密。然后进行私有化可以防止对实例变量进行不必要的和不受监视的更改

答案 1 :(得分:0)

  

如何将下面的addTopping位合并到代码中?哪里   它去了,哪些部分需要改变?

它应该进入Pizza课程。我担心这不是更详细的手持网站。