ich soll eine Cocktailbar programmieren. Diese eintählt eine take Methode die eine Zutat aus einem Bestand nimmt. diesen Bestand habe ich in einer ArrayList gespeichert
public void take(Ingredient ingredient, int quantity){}
diese Methode funktioniert soweit auch. Eine Zweite Methode soll die Zutaten eines Rezeptes entfernen
private ArrayList<Recipe> recipeList = new ArrayList<Recipe>();
hier werden Rezepte aufbewahrt
public class Recipe{
private String name;
private ArrayList<Ingredient> recipeIngredients = new ArrayList <Ingredient>();
}
so sehen die Rezepte aus.
Nun soll die Methode die Rezeptzutaten aus dem Bestand entfernen
public void mix(Recipe recipe)
for (int i = 0; i = recipe.getRecipeIngredients().size(); i++) { // durchläuft die Rezeptzutaten
this.take(recipe.getRecipeIngredients().get(i), recipe.getRecipeIngredients().get(i).getQuantity();
}
}
diese Methode implementiert die Take methode und soll die ausgelesenen Zutaten aus dem bestand entfernen. Die Take Methode funktioniert wenn man einzelnen Zutaten entfernt. Die Mix leider nicht.
kann mir jemand sagen wie ich in der Set Methode der RezeptZutaten
die menge der jeweiligen Zutat mitgeben kann?
public void setRecipeIngredients(ArrayList<Ingredient> recipeIngredients){
// Hier sollte mitgegeben werden wie viel vom jeweiligen
// Ingredient gebraucht wird
thiss.recipeIgnredients = recipeIngredients;
}
Ein Rezept ist doch eine Mischung von Zutaten in der richtigen Menge.
Also kapselt ein Rezept mindestens folgende Daten:
[ul][li]Name des Rezeptes
[/li][li]Eine Aufzählung von Zutaten mit der benötigten Menge
[/li][/ul]
Diese Aufzählung könnte man bspw. in einer HashMap anlegen.
Schlüssel ist das Zutaten-Objekt, Wert ist die Menge der Zutat.
[QUOTE=Unregistriert]und einen Konstruktor für die Rezepte zu machen der
Name d. Rezeptes
Names d. Zutaten
Menge d. Zutaten[/QUOTE]
Wäre glaube ich nicht das Richtige.
Dann schon eher ein Konstruktor für ein leeres Rezept, der nur den Namen des Rezeptes verlangt.
Wenn du das mit einer ArrayList machen willst, brauchst du ein weiteres Objekt, welches für je eine Zutat den Namen und die benötigte Menge kapselt.
Dem Objekt kannst du dann einen Konstruktor verpassen, der eine Zutat mit ihrer Menge entgegen nimmt. Das Objekt speicherst du schließlich in der ArrayList.