Widerspruch in Aufgabenstellung?

Diskutiere Widerspruch in Aufgabenstellung? im Java Basics - Anfänger-Themen Bereich.
N

nikva

Hallo Java Forum,
In meiner Aufgabenstellung werde ich in einer Aufgabe zu folgendem aufgefordert:

"a) Implementieren Sie eine Methode createSerial die eine ganzzahlige Seriennummer für Produkte generiert. Die erste Seriennummer ist 0 und soll bei jedem Aufruf um 1 erhöht werden. Beachten Sie das diese Nummern über das ganze Programm hinweg eindeutig sein müssen. "

und etwas später dann zu folgendem:

"Erstellen Sie eine allgemeine Klasse Product welche die gemeinsamen Eigenschaften von Produkten bündelt. Erstellt werden aber später nur konkrete Produkte.
a) Bei den Eigenschaften handelt es sich um die ganzzahlige Seriennummer, den Namen des Produkts und den Preis (Euros und Cent).
b) Erstellen Sie einen Konstruktor der Seriennummer, Preis und Name als Parameter erhält"

Für mich klingt das erstmal wie ein Widerspruch, da ich ja nicht einerseits die Seriennummer zentral erzeugen kann damit sie eindeutig ist aber andererseits dann im Konstruktor eine Seriennummer als Parameter zulassen?
Wenn ich das jetzt wie folgt mache dann wird der Parameter serialID im Konstrukot z.B nicht verwendet. Aber wenn ich ihn verwende dann kann man sich auch die Helpermethode sparen oder sehe ich das falsch?

Java:
public class Helper {
    private static int serialID = 0;

    public static int createSerial() {
        return serialID++;
    }
Java:
    public Product(int serialID, int price, String productName) {
        this.setSerialID(Helper.createSerial());
        this.setPrice(price);
        this.setProductName(productName);
    }
 
T

temi

Auch schön wäre:
Java:
public final class SerialID {
    private static int nextSerialID = 0;
    private final int serialID;

    private SerialID() {
        serialID = nextSerialID++;
    };
 
    public static SerialID createSerialID() {
        return new SerialID()
    }
 
    public int getValue() {
        return serialID;
    }
 
    // todo: override equals() and hashCode()
}
und dann:
Java:
public Product(SerialID serialID, int price, String productName) {
    //...
}
Das ist vermutlich nicht gefordert, aber man kann damit verhindern, dass einfach irgendein int-Wert an den Konstruktor von Product übergeben wird. Wobei man natürlich auch irgendeine SerialID übergeben kann...
 
Zuletzt bearbeitet:
Thema: 

Widerspruch in Aufgabenstellung?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben