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


Kapitel 30 Programmieraufgaben

Aufgabe 1

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.


Aufgabe 2

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.


Aufgabe 3

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.


Aufgabe 4

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