Wie mach ich das aber jetzt mit der toString methode ? irgendwie klappt das nicht
Ja, mit Gewalt kann man natürlich Vererbung einbauen - haben wir im Modell auch gemacht. Dann musst Du beim Einlesen den Typ (String) prüfen und je nachdem die entsprechende Klasse auswählen. Nur ergibt das keinen Sinn, denn Vererbung dient dazu, Funktionalität zu ändern bzw. zu erweitern und daran ändert sich zwischen den Containerarten nichts.Die Aufgabe ist im Kontext Verrbung gestellt worden und ich weiß es auch net, wobei es ja die 2 Arten Container gibt und eigentlich muss ich irgendwie die entssprechenden Konstruktoren aufrufen, aber das mach ich nicht.
Du musst prüfen, ob Du der Kran bereits eine Ladung hat.was ich falsch habe bei pick und den Bedingungen?
Was meinst Du?Wie mach ich das aber jetzt mit der toString methode ? irgendwie klappt das nicht
Bitte sag mir wie. Die Abgabe kommt näher und näher und ich schätze mal, dass ihr auch net die ganze Nacht da seidJa, mit Gewalt kann man natürlich Vererbung einbauen - haben wir im Modell auch gemacht. Dann musst Du beim Einlesen den Typ (String) prüfen und je nachdem die entsprechende Klasse auswählen. Nur ergibt das keinen Sinn, denn Vererbung dient dazu, Funktionalität zu ändern bzw. zu erweitern und daran ändert sich zwischen den Containerarten nichts.
Du musst prüfen, ob Du der Kran bereits eine Ladung hat.
public class Crane {
private static final int MAXHEIGHT = 1920; // Zoll
private static final int MAXLOADCAPACITY = 30000; // in kg
private ContainerStack position; // aktuelle Position des Krans
private Container containerLoad;
public static int getMaxheight() {
return MAXHEIGHT;
}
public static int getMaxloadcapacity() {
return MAXLOADCAPACITY;
}
public void moveTo(ContainerStack stack) {
position = stack;
}
public void pick() {
//if (MAXHEIGHT >= (position.calculateContainerStackHeight() + containerLoad.getHeight())) {
// while (position.stack.size() < 1) {
containerLoad = position.pick();
//}
// }
}
public void place() {
if (MAXHEIGHT >= (position.calculateContainerStackHeight() + containerLoad.getHeight())) {
position.place(containerLoad);
}
}
public boolean testHeight() {
if ((MAXHEIGHT - position.calculateContainerStackHeight()) >= MAXHEIGHT) {
position.place(containerLoad);
return true;
}
return false;
}
}
Ernsthaft jetzt? Welchen Wert hat denn containerLoad unmittelbar nach Erzeugung des Krans?Bitte sag mir wie.
Ernsthaft jetzt? Welchen Wert hat denn containerLoad unmittelbar nach Erzeugung des Krans?
public void pick() {
if (MAXHEIGHT >= (position.calculateContainerStackHeight() + containerLoad.getHeight())) {
if (containerLoad.getWeight() == 0) {
containerLoad = position.pick();
}
}
}
OMG. Schon mal was von einer null-Referenz oder einer NullPointerException gehört?Oh 0 oder nicht?
Wenn Du nur Container mit einem Gewicht von 0 kg hochheben willst und Dir es egal ist, ob Du vor einem leeren Stapel stehst...Aber passt sonst alles mehr oder weniger ?
if (position == null) {
// Fehler: Kran steht vor keinem Stapel
}
if (position.isEmpty()) {
// Fehler: Kran steht vor leerem Stapel
}
if (containerLoad != null) {
// Fehler: am Kran hängt schon ein Container
}
if (position.calculateContainerStackHeight() > MAX_HEIGHT) {
// Fehler: der Stapel ist höher als der Kran
}
Wie printe ich meine Hashmap aus ?
public void print() {
for (ContainerStack stack : stacks.values()) {
System.out.println(stack);
}
}
ct.terminalDoWorkContainer("40ft", 100, 200, 2);
ct.terminalDoWorkContainer("40ftHC", 100, 200, 1);
Terminal.printLine(ct.stacks.get(2));
Terminal.printLine(ct.stacks.get(1)); // Terminal.printLine ist mehr oder weniger das gleiche wie system.out
Keine Ahnung, da müsste man auch den Code z. B. zu ContainerStack sehen.Ausgaben : 2 mal das gleiche, aber wieso???
0 Punkte.Aber ich hab jetzt tatsächlich einfach die Ausgabe, die auf dem Blatt erwartet war genommen und printen lassen.
...und jetzt heißt es beten für mich
Das war aber ein kurzes Gebet