erstellt 05.09.99; überarbeitet 05.05.03; übersetzt 19.07.03; überarbeitet 19.01.04, 06.07.04, 10.01.05, 11.10.06. 26.11.18, 23.11.20, 22.11.21, 19.05.22; © Copyright 2003 - 2023 Deutsche Übersetzung Heinrich Gailer
Wir verändern das Programm aus Kapitel 30, so dass ein HalloObjekt
-Objekt eine Mitteilung so oft ausgibt wie die Mitteilung Zeichen hat.
Die HalloObjekt
-Klasse wird einen Konstruktor haben,
der es der Methode main()
erlaubt das Objekt mit unterschiedlichen Mitteilungen zu initialisieren.
D:\JavaNotes\Aufgaben>java HalloTester Hallo Hallo Hallo Hallo Hallo
Zurück zum Inhaltsverzeichnis.
Wir ändern das Programm, so dass die Klasse HalloObjekt
zwei Grußmitteilungen ausgibt: einen Morgengruß und einen Abendgruß.
Für die Ausgabe wird es zwei Methoden geben, eine für jede Grußmitteilung.
D:\JavaNotes\Aufgaben>java HalloTester Guten Morgen Welt! Guten Abend Welt!
Zurück zum Inhaltsverzeichnis.
Wir schreiben von HalloObjekt
eine Programmversion
in der die Grußmitteilung, die von dem Objekt ausgegeben wird,
vom Anwender eingegeben wird.
D:\JavaNotes>java HalloTester Geben Sie die Mitteilung ein: Hallo Mars! Hallo Mars! D:\javaNotes\aufgaben>
Das ist wirklich ein interessanteres Programm als es scheinen mag, da es eine schwierige Designentscheidung verlangt.
Wer soll den Anwender nach der Grußmitteilung fragen,
die statische Methode main()
von der HalloTester
Klasse oder das HalloObjekt
?
Beides wird funktionieren, aber eines (denke ich) ist "logischer" als das andere.
Wenn Ihr Euch nicht entscheiden könnt, schreibt beide Versionen und entscheidet Euch dann.
Zurück zum Inhaltsverzeichnis.
Wir fügen der Klasse HalloObjekt
einen weiteren Konstruktor hinzu, der ein HalloObjekt
-Objekt als Parameter nimmt:
HalloObjekt( HalloObjekt einHalloObjekt ) { // initialisiert die Variable mitteilung des neuen Objekts // mit der Variablen mitteilung des einHalloObjekt-Parameters }
Der zusätzliche Konstruktor wird den Parameter (selbstverständlich) nicht ändern, er wird lediglich dessen Daten verwenden. Verwendet die "Punkt-Notation", um auf den String innerhalb des Parameters zu verweisen.
Dieses Programm ist (ebenfalls) interessanter als es aussieht.
Wenn wir es in der nahe liegenden Weise schreiben, wird der zusätzliche Konstruktor die Variable mitteilung
mit der Referenz desselben Stringobjekts initialisieren,
auf die das Parameter-Objekt verweist.
Das ist OK für dieses Programm, aber manchmal ist es nicht das, was wir möchten.
Wir verändern den vorhin hinzugefügten Konstruktor, so dass er für das neue HalloObjekt
, das er konstruiert, ein neues Stringobjekt erstellt.
Wir verwenden dafür den Konstruktor der Klasse String
der wie folgt aussieht:
public String( String str ) ;
Zurück zum Inhaltsverzeichnis.
Ende der Aufgaben