Guten Morgen,
nach ewigem Knobeln brauche ich einen Tip zu folgender Aufgabenstellung:
Der Benutzer wird aufgefordert, ein Fach (String) und eine Note (Int) einzugeben.
Die Note soll dann über eine Werteklasse [1] in einen Notenobjekt verpackt werden, welches über den privaten Konstruktor der Werteklasse geschieht. D.h., ich habe eine statische Fabrikmethode, die das Objekt zurückwirft.
Danach soll Fach und das Notenobjekt in einer Entitätsklasse auf Gültigkeit geprüft werden und in ein weiteres Objekt verpackt werden. Hier erstelle ich in der Main Methode ein Objekt dieser Entitätsklasse und schiebe den String und das Notenobjekt rüber. Soweit so gut.
Schließlich soll das ganze in einer Art Objektliste gespeichert werden. D.h., ich packe ein Objekt in eine Liste, versehe es noch mit der Info, wo sich das nächste Objekt befindet usw. Wir haben also symbolisch gesprochen ein Regal, in dem sich die erzeugten Objekte auf Fach und Notenobjekte befinden.
Ich kann diese Liste mittels einer while Schleife und dem Java Iterator wieder auslesen. Kommen wir zum Punkt. Mir ist das alles soweit gelungen, allerdings kriege ich die Infos nicht mehr aus der Liste heraus.
Wenn ich mit dem Iterator auf ein Listenelement i zeige und dieses über den out.printf("%s", i.next()); Kanal auswerfe, bekomme ich, wie erwartet, Paketname.Klassenname@hashcode. Soweit so gut.
Soweit ich weiß, ist es für solche Fälle angeraten, die toString Methode zu überschreiben, um an die eigentlichen Werte zu kommen.
Allerdings MUSS sich diese in der Werteklasse [1] befinden - sodass ich theoretisch sagen könnte @Override [...] toString [...] this.note usw. Allerdings habe ich keinen Zugriff auf den String Fach in dieser Klasse, sodass ich keine Möglichkeit habe, die Ausgabemethode so zu überschreiben, dass Java alle Ausgabeparameter finden kann.
Gibt es eine Möglichkeit, die Objekte in der Liste wieder auszupacken? Also an den tatsächlichen Inhalt zu kommen und nicht an den HashCode?
Ich habe bewusst noch keine Codebeispiele geschickt, weil es über 3 Seiten sind und es so schnell unübersichtlich wird. Bitte lasst mich wissen, wenn detailiertere Infos nötig sind.
Vielen Dank!
nach ewigem Knobeln brauche ich einen Tip zu folgender Aufgabenstellung:
Der Benutzer wird aufgefordert, ein Fach (String) und eine Note (Int) einzugeben.
Die Note soll dann über eine Werteklasse [1] in einen Notenobjekt verpackt werden, welches über den privaten Konstruktor der Werteklasse geschieht. D.h., ich habe eine statische Fabrikmethode, die das Objekt zurückwirft.
Danach soll Fach und das Notenobjekt in einer Entitätsklasse auf Gültigkeit geprüft werden und in ein weiteres Objekt verpackt werden. Hier erstelle ich in der Main Methode ein Objekt dieser Entitätsklasse und schiebe den String und das Notenobjekt rüber. Soweit so gut.
Schließlich soll das ganze in einer Art Objektliste gespeichert werden. D.h., ich packe ein Objekt in eine Liste, versehe es noch mit der Info, wo sich das nächste Objekt befindet usw. Wir haben also symbolisch gesprochen ein Regal, in dem sich die erzeugten Objekte auf Fach und Notenobjekte befinden.
Ich kann diese Liste mittels einer while Schleife und dem Java Iterator wieder auslesen. Kommen wir zum Punkt. Mir ist das alles soweit gelungen, allerdings kriege ich die Infos nicht mehr aus der Liste heraus.
Wenn ich mit dem Iterator auf ein Listenelement i zeige und dieses über den out.printf("%s", i.next()); Kanal auswerfe, bekomme ich, wie erwartet, Paketname.Klassenname@hashcode. Soweit so gut.
Soweit ich weiß, ist es für solche Fälle angeraten, die toString Methode zu überschreiben, um an die eigentlichen Werte zu kommen.
Allerdings MUSS sich diese in der Werteklasse [1] befinden - sodass ich theoretisch sagen könnte @Override [...] toString [...] this.note usw. Allerdings habe ich keinen Zugriff auf den String Fach in dieser Klasse, sodass ich keine Möglichkeit habe, die Ausgabemethode so zu überschreiben, dass Java alle Ausgabeparameter finden kann.
Gibt es eine Möglichkeit, die Objekte in der Liste wieder auszupacken? Also an den tatsächlichen Inhalt zu kommen und nicht an den HashCode?
Ich habe bewusst noch keine Codebeispiele geschickt, weil es über 3 Seiten sind und es so schnell unübersichtlich wird. Bitte lasst mich wissen, wenn detailiertere Infos nötig sind.
Vielen Dank!