Objektorientierung

Louis12

Aktives Mitglied
Hallo,

ich hätte eine Frage und zwar verstehe ich ein teil des vorgegebenen codes nicht, um die Aufgabe zu bearbeiten.

GANZE AUFGABEN ÜBERSICHT
In dieser Aufgabe werden Sie das bekannte Logistiksystem weiter ausbauen und einen Zustellungsalgorithmus implementieren. Entsprechend der Jahreszeit stellt ein Weihnachtsmann die Lieferungen zu und Straßen müssen nicht berücksichtigt werden.

bevor ich diese Aufgabe angegangen bin habe ich die Methode removeDelivery() erstellt.

EIGENTLICHE AUFGABENSTELLUNG
Die Methode registerDeliveries() fügt neue Lieferungen am Ende des Arrays deliveries an und vergrößert dieses Array immer weiter. Andererseits entfernt die Methode removeDelivery() Lieferungen aus dem Array und setzt die entsprechenden Werte auf null. Im späteren Programmablauf würde dies dazu führen, dass am Anfang des Arrays null Werte stehen und erst gegen Ende des Arrays Referenzen auf Lieferungen vorhanden sind. Verhindern Sie dies, indem Sie die Methode registerDeliveries() so anpassen, dass das Array auch schrumpft, wenn es null-Werte am Anfang des Arrays gibt. Null-Werte, die in der Mitte des Arrays auftreten, dürfen erhalten bleiben.





Code:
public void registerPallets(Pallet... pallets) {
        if (pallets == null || pallets.length == 0) {
            return;


        }
        Pallet[] oldPallets = this.pallets; // 
        Pallet[] newPallets = new Pallet[oldPallets.length + pallets.length]; 

        for (int i = 0; i < newPallets.length; i++) {
            if (i < oldPallets.length) {
                newPallets[i] = oldPallets[i]; 
            } else {
                newPallets[i] = pallets[i - oldPallets.length];
            }
          
        }


        this.pallets = newPallets;

        //Remove leading null values in this.pallets here
    }

Meine Fragen:
Warum wird überhaupt überprüft ob( i < oldPallets.length) ist i ist doch immer größer denn mann muss mindestens 1 objekt dazu addieren.

newPallets = pallets[i - oldPallets.length] dann stecken doch in den neuenPalletarray nur die neuen palletwerte

in der aufgabenstellung steht doch dass, das array immer vergrößert wird ich sehe hiervon nix und wo greift den die Methode removeDelivery() ein
 

White_Fox

Top Contributor
newPallets und oldPallets sind Arrays, die Objekte vom Typ Pallet enthalten. In der for-Schleife wird das gesamte Array abgegrast, Objekt für Objekt.

Und jetzt überleg mal, wie Arrays funktoinieren, insb. der Zugriff auf Elemente in einem Array.

Edit:
denn mann muss mindestens 1 objekt dazu addieren.

for (int i = 0; i < newPallets.length; i++)

 

Louis12

Aktives Mitglied
Hallo vielen Dank für die Antwort,
der if teil füllt die erste hälfte des arrays und der else Teil die andere Hälfte.
Was ich nicht aber verstehe ist das nur am anfang und in der mitte des arrays null werte enstehen können und nicht am ende.
 

Louis12

Aktives Mitglied
Klingt Logisch danke !

Ich hätte noch eine Frage und und würde mich auf eine Anwort freuen

Aufgabenstellung :

Gegeben ist außerdem das Interface IStockWorker (Package stock) mit der Methode computeNextOperation(). Die Methode erhält folgende Parameter: - x – die aktuelle x-Position des Arbeiters - y – die aktuelle y-Position des Arbeiters - registeredPallets – Array mit einzulagernden Lieferungen - stacks – aktuelle Stapel - inventory – aktuelle Palette des Arbeiters (oder null wenn keine aufgenommen) - requested – aktuell geforderte Palette zur Auslagerung Die Methode soll, je nach gegebener Situation, ein Kommando als String zurückgeben. Folgende Kommandos sind zulässig: - „N“(orth), „S“(outh), „W“(est), „E“(ast) – Bewegt den Wichtel auf der Karte um eine Position in die entsprechende Richtung. - „P“(ick) – Nimmt die oberste Palette auf der aktuellen Position auf, sie ist anschließend im Inventar. Paletten können auf dem Förderband links und auf Stapelpositionen in der Mitte aufgenommen werden. - „D“(rop) – Lässt die Palette im Inventar auf der akuellen Position fallen. Paletten können in der Auslieferungszone (nur gefordete Paletten) und auf Stapelpositonen (wenn dort keine oder eine größere Palette liegt) abgelegt werden.

Frage:
Das ist doch letzenlich nur ein Interface deshalb verstehe ich nicht in der Aufgabe genau machen muss, denn ein Interface hat doch nur methoden und diese Methode kann ich eh nicht erweirtern

Code:
Code:
package main.stock;

import main.goods.Pallet;

public class Wichtel implements IStockWorker {

 


    @Override
    public String computeNextOperation(int x, int y, Pallet[] registeredPallets, Stack[] stacks, Pallet inventory, Pallet requested) {
        return "E";







    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
L Einführung Objektorientierung Java Basics - Anfänger-Themen 8
L Einstieg Objektorientierung Java Basics - Anfänger-Themen 10
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
B Objektorientierung Java Basics - Anfänger-Themen 1
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
T Objektorientierung-Kurze Frage Java Basics - Anfänger-Themen 5
L Hilfe! Objektorientierung Java Basics - Anfänger-Themen 3
S OOP Zusammenhang von Objektorientierung und Ausnahmebehandlungen Java Basics - Anfänger-Themen 6
C Objektorientierung? Java Basics - Anfänger-Themen 5
G Designfrage/Objektorientierung Java Basics - Anfänger-Themen 19
S Methoden Aufgabe zu ""Methoden" und "Objektorientierung" Java Basics - Anfänger-Themen 3
B OOP Programm zur Verdeutlichung von Objektorientierung Java Basics - Anfänger-Themen 7
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
B Objektorientierung Java Basics - Anfänger-Themen 2
W Einstieg Objektorientierung Java Basics - Anfänger-Themen 4
X Objektorientierung Einführung Java Basics - Anfänger-Themen 2
A Objektorientierung Klassen Java Basics - Anfänger-Themen 4
D Objektorientierung / Polymorphismus Java Basics - Anfänger-Themen 8
Spin Objektorientierung . Konzept Java Basics - Anfänger-Themen 4
M Objektorientierung Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3
R ObjektOrientierung Java Basics - Anfänger-Themen 18
D Objektorientierung ? Java Basics - Anfänger-Themen 4
D Objektorientierung Listen Java Basics - Anfänger-Themen 2
J objektorientierung und uml Java Basics - Anfänger-Themen 5
D Objektorientierung - wie konsequent sollte man sein ? Java Basics - Anfänger-Themen 30
D Zuerst Objektorientierung oder GUI ? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben