Modellierung, vererbung,

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.
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.

was ich falsch habe bei pick und den Bedingungen?
Du musst prüfen, ob Du der Kran bereits eine Ladung hat.

Wie mach ich das aber jetzt mit der toString methode ? irgendwie klappt das nicht
Was meinst Du?
 
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.


Du musst prüfen, ob Du der Kran bereits eine Ladung hat.
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 seid

Was meinst Du?
[/QUOTE]
Wie printe ich meine Hashmap aus ?
 
Hier zurück zur Kran Klasse, kann mir bitte wer sagen wo die Fehler liegen und wie ich sie behebe

Code:
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?

Oh 0 oder nicht? haha

Code:
public void pick() {

        if (MAXHEIGHT >= (position.calculateContainerStackHeight() + containerLoad.getHeight())) {
            if (containerLoad.getWeight() == 0) {
                containerLoad = position.pick();
            }
        }
    }

Aber passt sonst alles mehr oder weniger ? Also in der Kranklasse oder blockiert noch etwas den Transport, unabhängig von den Bedingugnen
 
OMG. Schon mal was von einer null-Referenz oder einer NullPointerException gehört?

Aber passt sonst alles mehr oder weniger ?
Wenn Du nur Container mit einem Gewicht von 0 kg hochheben willst und Dir es egal ist, ob Du vor einem leeren Stapel stehst...

Mal ein paar Ideen:
Java:
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
}
EDIT: Hinzu käme natürlich noch das Gewicht.
 
Danke erstmal dafür, Ich werd das gleich umsetzen, aber mein ContainerTerminal bzw die Hashmap funktioniert glaub ich nicht.

Code:
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

Ausgaben : 2 mal das gleiche, aber wieso???
40ftHC;100;200kg;1
40ftHC;100;200kg;1

Das Stappeln bei gleichen Nummern klappt jedoch, also immerhin etwas, aber wieso klappt das nicht mit der hashmap und dem erstellen und printen von stacks?

Edit : Stappeln ist anscheinend doch nicht das richtige, also hab ich es weg gemacht,
 
Zuletzt bearbeitet:
Egal ich habs aufgegeben, aber herzliches Dank an euch alle. Mal sehen, was meine Abgabe bringt haha Aber ich hab jetzt tatsächlich einfach die Ausgabe, die auf dem Blatt erwartet war genommen und printen lassen. Passt so und jetzt heißt es beten für mich
 

Neue Themen


Zurück
Oben