Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
6.4 Tischlein deck dich!
Hallo habe ein Problem mit folgender Aufgabenstellung:
Die get. . . -Methoden im BesteckKasten sollen den jeweiligen Array-Eintrag zurückgeben und stattdessen null eintragen.
Was heißt stattdessen?? Wo soll null eingetragen werden??
lg hans
edit:
habs von selbst verstanden… Das Messer soll also aus dem Besteckkasten entnommen werden… also kein eigentlicher Getter…
edit 2:
Soll überprüft werden ob das Array überhaupt diesen Index hat… z.B. Array[] a = new Array[20] und ich spreche a[35] an… soll ich eine exception werfen oder ist das ok wenn ich einfach annehme dass das Object richtig angesprochen wird?
Frage : Nur weil ein Attribut laut der Aufgabe und der UML Darstellung nicht verwendet wird heißt es nicht, dass die Implementierung falsch ist wenn es nicht verwendet wird oder ? D.h. wenn man etwas implementiert, dass durch die fehlende Aufgabenstellung keinen Nutzen hat dann is das egal es geht nur ums implementiern?! right?
Hab’ an der Stelle auch ne Frage zur Klasse Besteckkasten.
Sollen wir im Konstruktor das MesserArray nach dem initialisieren noch mit einem zahlenwert wie 1 belegen?
Weil ansonsten muesste das MesserArray ja voller null sein.
Und die getter-Methode, welche ja ueberpruefen muss ob das Messer mit dem jeweiligen Index ueberhaupt noch im Besteckkasten liegt (messer[index] != null)
wuerde dann ja immer die exception schmeiszen.
Stimmt. Neben anzahlMesser und anzahlGabeln musst du laut UML-Diagramm
nochmals messer[] und gabeln[] im Kontstruktor initialisieren.
Kannst du dem Ende des Pfeils von BesteckKasten nach Messer/Gabel entnehmen.
Es braucht nur eine Klasse eine main-Methode, ja. Aber man kann auch mehrere main-Methoden schreiben, ohne den Compiler zu verwirren:
test1.java:
public class test1 {
public static int foo = 23;
public static void main(String[] args) {
System.out.println(test2.foo);
}
}
test2.java:
public class test2 {
public static int foo = 42;
public static void main(String[] args) {
System.out.println(test1.foo);
}
}
Kann man wie folgt übersetzen und ausführen:
malte@malte-laptop:~$ javac test1.java
malte@malte-laptop:~$ java test1
42
malte@malte-laptop:~$ java test2
23
malte@malte-laptop:~$
Dabei ists egal, ob man javac jetzt test1.java oder test2.java oder beide gibt, weil aufgrund von Abhängigkeiten sowieso beide kompiliert werden.
Nur um’s nochmal zu klaeren: War das jetzt allgemeingueltig gemeint?
In unserer gezippten Abgabe muss keine unsere Klassen eine main-Methode haben, oder?
So hat mir das naemlich ein Tutor in 'ner Rechneruebung nochmals versichert.
es steht aber nirgends, dass man anzahlMesser und anzahlGabeln im Konstruktor von BesteckKasten initialisieren soll.
die beiden Attribute werden hier nie verwendet.
Ebenfalls eine kurze Frage zu dem tollen Besteck.
Falls in dem Diagramm keine Konstruktoren vorgegeben sind, sollen wir diese ebenfalls unter den “Tisch” fallen lassen?
Nein, ich braucht keine main-Methode, es steht ja keine im UML-Diagramm.
Zum Testen würde ich die main auch in eine eigene Klasse packen und diese dann einfach nicht mit abgeben.
anzahlMesser und anzahlGabeln braucht ihr nicht zu initialisieren, aber messer und gabel die richtige Größe zu geben, fänd ich sinnvoll. wird in der Aufgabenstellung verlangt.