Hallo liebe Community,
bei folgender Frage geht es um eine UNI-Hausaufgabe eines Kollegen,
die ihr natürlich NICHT für mich lösen sollt.
Ich habe lediglich ein paar Verständnisfragen dazu...
Die Aufgabenstellung findet ihr hier:
Zusatz: Man SOLL das Array final machen! (Deswegen verstehe ich die Aufgabe nicht mehr)
Die Frage ist also:
Wenn ich in der Klasse ImmutableSet (noch vor dem Konstruktor) also ein "final String[]" deklariere, so MUSS ich es ja direkt füllen.
Bsp:
Nun soll ich einen Konstruktor schreiben, in dem eine leere Menge erzeugt wird...
Leere Menge in eine finale Variable? Impossible!
Ich habe noch einmal nachgefragt: Das Array soll FINAL deklariert werden...
bei folgender Frage geht es um eine UNI-Hausaufgabe eines Kollegen,
die ihr natürlich NICHT für mich lösen sollt.
Ich habe lediglich ein paar Verständnisfragen dazu...
Die Aufgabenstellung findet ihr hier:
Aufgabe 7.4 [a) und b) jeweils 3 Punkte] (H) String-Mengen
Ziel dieser Aufgabe ist es, eine Klasse ImmutableSet zur Repräsentation von unveränderbaren
Mengen von Strings zu entwickeln. Implementieren Sie die Klasse ImmutableSet
mit Hilfe eines Arrays, in dem jedes Element der repräasentierten Menge genau einmal
vorkommt. Die Klasse ImmutableSet soll folgende Methoden bereitstellen:
a)
• Einen Konstruktor zur Erzeugung einer leeren Menge.
• Eine Methode boolean istElement(String s), die uberprüft, ob der durch s
repräsentierte String in der Menge enthalten ist.
• Eine Methode boolean obermengeVon(ImmutableSet teilmenge), die überprüft, ob die Menge teilmenge in der Menge enthalten ist, die die Methode bereitstellt.
• Eine Methode boolean equals(ImmutableSet other), die uberprüft, ob die
Menge other die gleichen Elemente enthält, wie die Menge, die die Methode
bereitstellt.
b)
• Eine Methode ImmutableSet add(String s), die eine um den String s erweiterte
Menge zurückgibt. Das heißt, der Aufruf m1.add(s) gibt eine Menge m23
zurück, die s und alle Elemente von m1 enthält.
– Falls der String s bereits in der alten Menge enthalten ist, können Sie die
alte Menge zurückgeben.
– Für den anderen Fall erstellen Sie einen zweiten Konstruktor, diesmal einen
privaten Konstruktor, der einen String s und eine Menge alt bekommt und
daraus eine neue Menge erstellt, die beides enthält.
• Eine Methode String toString(), die eine String-Darstellung der Menge erzeugt
und zurückliefert.
Hinweise: Verwenden Sie bei der Implementierung nach Möglichkeit von Ihnen bereits implementierte
Methoden aus anderen Teilaufgaben. Testen Sie Ihre Klasse mit einer sinnvollen
main-Methode. Diese sollte alle Methoden testen und auch mögliche Interaktionen zwischen
den einzelnen Methoden berücksichtigen.
Zusatz: Man SOLL das Array final machen! (Deswegen verstehe ich die Aufgabe nicht mehr)
Die Frage ist also:
Wenn ich in der Klasse ImmutableSet (noch vor dem Konstruktor) also ein "final String[]" deklariere, so MUSS ich es ja direkt füllen.
Bsp:
Java:
public final String[] menge = new String[]{"1","2","3"};
Nun soll ich einen Konstruktor schreiben, in dem eine leere Menge erzeugt wird...
Leere Menge in eine finale Variable? Impossible!
Ich habe noch einmal nachgefragt: Das Array soll FINAL deklariert werden...