2016-04-08 18 views
0

私は現在、私のプロジェクトでこの問題を理解するのに苦労しています。私は現在、gettersとsetterとtoStringで名前、価格、説明を保存するFoodクラスを持っています。また、サブクラス(スターター、メインデザート)を使用したコースクラスもあります。私はどのようにコースに食品を添付するのかを理解しようとしています。食べ物を追加 (名前、価格、説明して、カロリー) リストすべての食品 追加コース:Java - プロジェクト、クラスにオブジェクトを追加する

public abstract class Course{ 
    //fields 
    //protected only accessible to subclasses 
    protected MenuList starter; 
    protected MenuList main; 
    protected MenuList dessert; 
    protected MenuList drinks; 

    //Constructor 
    public Course(){ 
    starter = new MenuList(); 

     main = new MenuList(); 

     dessert = new MenuList(); 

     drinks = new MenuList();  
    } 
    //getters and setters 

    //methods 
    public abstract MenuList getList(); 

    //add item 
    public void addItem(String course, String foodName, double price, String description, int calories){ 
     this.addItem(course, foodName, price, description, calories); 
    } 
} 

スターター、メイン、デザートサブクラス

public class StarterFood extends Course{ 
     //fields 

    //constructor 
    public StarterFood(){ 
     //course, 
     starter.addItem("starter", "chicken wings", 2.30, "very nice", 150, false); 

    } 

    @Override 
    public MenuList getList() { 
     return starter; 
    } 
    //Constructors 


    //getters and setters 

    //methods 
} 

これまでIVEとの同じサブクラス コースの検索(コース番号または名前による) すべてのコースのリスト 私はこれを行う必要がありますが、私は苦労しています。助けを歓迎しています コースに食品を添付する

答えて

1

あなたがコースに食べ物を追加しようとする場合は、例えば関係「が」使用する必要があります。

public class Course { 
    private Food food; 

    public Course(Food food) { 
     this.food = food; 
    } 

    public Course() { 

    } 

    public Food getFood() { 
     return this.food; 
    } 

    public void setFood(Food food) { 
     this.food = food; 
    } 
} 
私はまた、 を拡張しているので、コースを延長するStarterFoodを使用していないだろう

は ""の関係で、私はそれをStarterCourseと呼び、そのコースのデフォルトフードをコンストラクタに追加します。あなたは伝説、感謝している

public class Main() { 
    public static void main() { 
     // First create new Food object 
     Food food = new Food(); 
     // Create a new StarterCourse and add the Food object to it 
     StarterCourse starterCourse = new StarterCourse(food); 
    } 
} 
+0

を私はスターターコース手段のコンストラクタでデフォルトの食品を追加するかを理解していない:

public class StarterCourse extends Course { public StarterCourse(Food food) { // here call the super classes constructor // add items via the Course constructor super(food); } } 

次に、あなたのメインクラスは、それをテストするためにこれを試してください。 –

+0

このようなクラスを試してみましょう。StartCourse extends Course {public StarterCourse {Food food = new Food();/*ここに新しいフードを作成する*/this.food = food;}} –

+0

このURLは、setFoodメソッドのコードにreturn文が含まれている例を示しています(http://stackoverflow.com/questions/4488716/java-default-constructor –