2016-04-08 29 views
0

Ich bin gerade dabei, dieses Problem für mein Projekt zu lösen. Ich habe derzeit eine Food-Klasse, die Name, Preis und Beschreibung mit Getter und Setter und einem toString speichert. Und ein Kurs mit Unterklassen (Vorspeise, Hauptdessert). Ich versuche herauszufinden, wie man einem Kurs ein Essen beifügt.Java - Projekt, Hinzufügen eines Objekts zur Klasse

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); 
    } 
} 

Starterunterklasse ist es das gleiche mit Haupt- und Nachspeise Subklassen

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 
} 

bisher ive: Essen Zugabe (mit einem Namen, Preis, Beschreibung, Kalorien) Auflistung aller Lebensmittel Hinzufügen Kurse Suche nach einem Kurs (nach Kursnummer oder Name) Auflistung aller Kurse Ich muss nur tun, aber ich habe Mühe, jede Hilfe wird geschätzt Essen zu den Kursen

Antwort

1

Wenn Sie ein Essen zu einem Kurs hinzuzufügen versuchen, sollen Sie eine Beziehung zum Beispiel „hat eine“:

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; 
    } 
} 

Ich würde auch nicht StarterFood verwenden, um einen Kurs zu verlängern, weil erstreckt ist für und "ist eine" Beziehung, würde ich es StarterCourse nennen und dann ein Standard-Essen für diesen Kurs im Konstruktor hinzufügen.

public class StarterCourse extends Course { 

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

Dann in der Hauptklasse um es zu testen versuchen Sie dies:

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

du bist eine Legende, Dank, aber ich verstehe nicht, was in den Konstruktor Starter natürlich mittels eines Standard Essen Hinzufügen . –

+0

Versuchen Sie etwas wie diese öffentliche Klasse StartCourse erweitert Kurs {public StarterCourse {Food food = new Food();/* hier neues Essen erstellen */this.food = essen;}} –

+0

Diese URL zeigt ein Beispiel http://StackOverflow.com/Questions/4488716/Java-default-Constructor –

Verwandte Themen