Hallo, das ist jetzt mein erster Beitrag in einem Forum überhaupt und schlimm genug, dass ich in diesem direkt nach Hilfe fragen muss, statt helfen zu können. Ich hoffe jemand kann und mag mir bei meinem Problem helfen:
Ich muss folgendes Programm zum laufen bekommen
Diese beiden Klassen sind mir vorgegeben und mein Problem ist, diese darf ich nicht verändern.
Folgende müssen damit laufen:
Die Speisen habe ich einfach weg gelassen, da das Prinzip das selbe sein dürfte.
Also unter der Methode einkaufen lässt sich Wasser problemlos einlesen, da (String name, int menge) passt.
Wenn ich Mate einlesen soll ist mir aber nur ein String gegeben, welches nicht in die selbe Methode passt, da ihm dann ein int fehlt.
Meine erste Idee war es in die Klasse Lebensmittel eine neue Methode Lebensmittel(String name) zu schreiben, bis ich bemerkt habe, dass ich diese Klasse nicht verändern darf und es somit noch anders zu lösen sein muss.
Kann mir vielleicht jemand den richtigen Hinweis geben? Sonderlich schwer scheint die Aufgabe nicht zu sein ich habe einfach ein riesen Brett vor'm Kopf =( Und verzeiht mir bitte den langen Post.
Ich muss folgendes Programm zum laufen bekommen
Java:
public class Kuehlschrank {
protected Lebensmittel[] kuehlschrank;
protected int fuellstand;
public Kuehlschrank(int size) {
kuehlschrank = new Lebensmittel[size];
fuellstand = 0;
}
public void einkaufen() {
kuehlschrank[fuellstand++] = (new Mate("Club Mate"));
kuehlschrank[fuellstand++] = (new Brot(1, 750));
kuehlschrank[fuellstand++] = (new Wasser("Sprudel", 330));
kuehlschrank[fuellstand++] = (new Mate("Flora Power"));
kuehlschrank[fuellstand++] = (new Brot(3, 1000));
kuehlschrank[fuellstand++] = (new Wurst("Soja Spezial", 100));
kuehlschrank[fuellstand++] = (new Wasser("Still", 2000));
}
public void auflisten() {
for (int i = 0; i < fuellstand; i++) {
System.out.println(kuehlschrank[i].status());
}
}
public void verbrauchen() {
for (int i = 0; i < fuellstand; i++) {
if (kuehlschrank[i].essen()) {
System.out.println("Essen: " + kuehlschrank[i].status());
}
if (kuehlschrank[i].trinken()) {
System.out.println("Trinken: " + kuehlschrank[i].status());
}
}
}
public static void main(String argv[]) {
Kuehlschrank kschrank = new Kuehlschrank(10);
kschrank.einkaufen();
kschrank.auflisten();
kschrank.verbrauchen();
}
}
public abstract class Lebensmittel {
protected String name;
protected int menge;// in Milliliter bzw. Gramm
public Lebensmittel(String name, int menge) {
this.name = name;
this.menge = menge;
}
public abstract boolean essen();
public abstract boolean trinken();
public abstract String status();
}
Diese beiden Klassen sind mir vorgegeben und mein Problem ist, diese darf ich nicht verändern.
Folgende müssen damit laufen:
Java:
public class Getraenk extends Lebensmittel
{
public Getraenk (String name, int menge)
{
super (name, menge);
}
public boolean essen()
{
return false;
}
public boolean trinken()
{
return true;
}
public String status()
{
return ("In diesen Kuehlschrank passen nur die Getraenke Wasser und Mate ;)");
}
}
public class Wasser extends Getraenk
{
public Wasser (String name, int menge)
{
super (name, menge);
}
public String status()
{
return "Wasser: " + "\""+name+"\"" + "\nDie Flasche beinhaltet " + ((float) menge / 1000) + " Liter";
}
}
public class Mate extends Getraenk
{
public Mate (String name, int menge)
{
super(name,menge);
}
public String status()
{
return "Mate: " + "\""+name+"\"" + "\nDie Flasche beinhaltet 0.5 Liter";
}
}
Die Speisen habe ich einfach weg gelassen, da das Prinzip das selbe sein dürfte.
Also unter der Methode einkaufen lässt sich Wasser problemlos einlesen, da (String name, int menge) passt.
Wenn ich Mate einlesen soll ist mir aber nur ein String gegeben, welches nicht in die selbe Methode passt, da ihm dann ein int fehlt.
Meine erste Idee war es in die Klasse Lebensmittel eine neue Methode Lebensmittel(String name) zu schreiben, bis ich bemerkt habe, dass ich diese Klasse nicht verändern darf und es somit noch anders zu lösen sein muss.
Kann mir vielleicht jemand den richtigen Hinweis geben? Sonderlich schwer scheint die Aufgabe nicht zu sein ich habe einfach ein riesen Brett vor'm Kopf =( Und verzeiht mir bitte den langen Post.