© APSIS GmbH , Polling, 2000
in der ersten Auflage des Lehrbuchs Programmieren mit Java
Stand: 19. Oktober 1999
In der vierten Zeile (in den Klammern) soll es richtig heißen
im Literaturverzeichnis auf Seite 306
und nicht wie im Buch
im Literaturverzeichnis auf Seite 269
Im Satz vor dem Programm (2.10) heißt es anstelle von Oberklasse richtig Unterklasse:
Eine Unterklasse dieser Klasse hat aber die Möglichkeit, neueMethode (in die wir auch einen interessanteren, neuartigen Altorithmus hätten programmieren können) aufzurufen:
und nicht wie im Buch
Eine Oberklasse dieser Klasse hat aber die Möglichkeit, neueMethode (in die wir auch einen interessanteren, neuartigen Altorithmus hätten programmieren können) aufzurufen:
Letzter Satz des zweiten Absatzes:
In Java verstehen wir darunter nicht-öffentliche void-Methoden, die vorwiegend in der eigenen Klasse (evtl. in einer Unterklasse) aufgerufen werden.
und nicht wie im Buch
In Java verstehen wir darunter nicht-öffentliche void-Methoden, die vorwiegend für in der eigenen Klasse (evtl. in einer Unterklasse) aufgerufen werden.
Erster Satz des Kapitels:
Es ist ein häufiges Phänomen, dass eine bestimmte Folge von Anweisungen in einem Programm öfter ausgeführt werden muss.
und nicht wie im Buch
Es ist ein häufiges Phänomen, dass eine bestimmte Folge von Anweisungen in einem Programm öfter vorkommt.
In der zweiten Zeile unter der Abbildung. 3.1
Das kursiv gesetzte Wort Eingabeparemter soll richtig Eingabeparameter heißen
Das letzte Wort im ersten Satz nach dem Programm (3.12) ist kann, nicht können:
Die Methode prozedur würden wir normalerweise static vereinbaren, damit sie ohne ein Objekt ihrer Klasse aufgerufen werden kann.
und nicht wie im Buch
Die Methode prozedur würden wir normalerweise static vereinbaren, damit sie ohne ein Objekt ihrer Klasse aufgerufen werden können.
Im letzten Satz des vorletzten Absatzes auf der Seite fehlt das Wort zwischen:
Im Kapitel 3.3.1. auf Seite 63 haben wir schon den Unterschied zwischen Lebensdauer und Sichtbarkeit untersucht.
und nicht wie im Buch
Im Kapitel 3.3.1. auf Seite 63 haben wir schon den Unterschied Lebensdauer und Sichtbarkeit untersucht.
Zweiter Satz im Kapitel:
Wird in einer aufgerufenen Methode (oder in einem aktivierten Block) eine Ausnahme ...
und nicht wie im Buch
Wird in einer aufgerufenen Methode (oder aktiviertem Block) eine Ausnahme ...
Erster Satz im Kapitel:
Jetzt haben wir fast alle Sprachelemente kennen gelernt, die nötig sind, um ohne das Paket lehrbuch eigene Java-Programme zu schreiben.
und nicht wie im Buch
Jetzt haben wir fast alle Sprachelemente kennen gelernt, die nötig sind, ohne das Paket lehrbuch Java-Programme zu schreiben.
Erster Satz im Punkt 2:
Die Anweisungen der Methode start werden jedes Mal ausgeführt, wenn die Internet-Seite mit der Applet-Klausel besucht wird.
und nicht wie im Buch
Die Anweisungen der Methode start werden jedes Mal ausgeführt, wenn die Internet-Seite mit dem Applet-Klausel besucht wird.
Zweiter Absatz:
Im Kapitel 3.2.1. auf Seite 59 haben wir die Spezifikation von Klassen kennen gelernt. Hieraus gewinnt der Benutzer alle Information, um die Klasse in seinem Programm benutzen (z.B. Operationen aufrufen) zu können. Sie enthält die Profile aller exportierten Methoden. Die Klassenimplementierung selbst enthält auch die Rümpfe dieser Methoden. Sie enthält am Anfang das Profil, genau wie in der Spezifikation aufgeführt; anschließend folgt ein Block, der Methodenrumpf. Hierin können Objekte und andere Namen vereinbart werden; außerdem enthält er die Anweisungen, die beim Aufruf der Operation ausgeführt werden sollen.
und nicht wie im Buch
Im Kapitel 3.2.1. auf Seite 59 haben wir die Spezifikation von Klassen kennen gelernt. Hieraus gewinnt der Benutzer alle Information, um die Klasse in sein Programm benutzen (z.B. Operationen aufrufen) zu können. Sie enthält die Profile aller exportierten Methoden. Die Klassenimplementierung selbst enthält auch die Rümpfe dieser Methoden. Sie enthält zu Anfang das Profil, genau wie in der Spezifikation aufgeführt; anschließend folgt ein Block, der Methodenrumpf. Hierin können Objekte und andere Namen vereinbart werden; außerdem enthält er die Anweisungen, die den Algorithmus beschreiben, der beim Aufruf der Operation ausgeführt werden soll.
Zweiter und dritter Satz:
Wir nennen diese neuen Mutatoren garantiertFuellen und garantiertEntleeren. Die neue Klasse, die durch das Kopieren von Eimer entstanden ist, nennen wir GarantierterEimerKop.
und nicht wie im Buch
Wir nennen diese neue Mutatoren garantiertFuellen und garantiertEntleeren. Die neue Klasse nennen wir GarantierterEimerKop.
Erster Satz des letzten Absatzes vor dem Programm (4.16):
Somit ist es möglich, eine Methode mit einem Eimer-Parameter für ein Objekt der Klasse GarantierterEimerErb aufzurufen.
und nicht wie im Buch
Somit ist es möglich, eine Methode mit einem Eimer-Parameter für ein Objekt der Klasse GarantierterEimerErb aufrufen.
Erster Satz nach dem Programm (4.17):
Die Sachlage ist folgendes:
und nicht wie im Buch
Die Sachlage ist verständlich:
Erster Satz nach dem Programm (4.18):
Einer Unterklassenreferenz kann eine Oberklassenreferenz nur durch Typkonvertierung zugewiesen (oder als Parameter übergeben) werden, damit der Compiler die Zuweisung zulässt.
und nicht wie im Buch
Einer Oberklassenreferenz kann eine Unterklassenreferenz nur durch Typkonvertierung zugewiesen (oder als Parameter übergeben) werden, damit der Compiler die Zuweisung zulässt.
Zweiter Absatz auf der Seite:
Im Benutzerprogramm wird nun eine Referenz vom Schnittstellentyp PolymorpherEimer vereinbart, und hierdurch wegen der Aufwärtskompatibilität zwei Objekte verschiedener Klassen referiert: das eine der Klasse WasserEimer, das andere der Klasse WeinEimer.
und nicht wie im Buch
Im Benutzerprogramm wird nun eine Referenz vom Schnittstellentyp PolymorpherEimer vereinbart, und hierdurch wegen der Aufwärtskompatibilität zwei Objekte verschiedener Klassen zu referieren: das eine der Klasse WasserEimer, das andere der Klasse WeinEimer.
Erster Satz des zweiten Absatzes:
Viele Klassen, die Datenbehälter implementieren, exportieren eine besondere Sorte von Operationen: Funktionen, die in die Behälter passenden Werte darstellen; wir nennen diese Wertefunktionen.
und nicht wie im Buch
Viele Klassen, die Datenbehälter implementieren, exportieren eine besondere Sorte von Operationen: Funktionen, die in die Behälter passende Werte darstellen; wir nennen diese Wertefunktionen.
Dritter und vierter Satz im Kapitel:
Danach muss ein Wert vom Ergebnistyp stehen. Dieser kann von einer Wertefunktion, einem anderen Informator oder von einer beliebigen anderen Funktion geliefert werden:
und nicht wie im Buch
Danach muss ein Wert vom dem Ergebnistyp stehen. Dieser kann von einem Wertefunktion, einem anderen Informator oder von einer beliebigen anderen Funktion geliefert werden:
Punkt 3 nach der Methode clone:
3. Das Überschreiben von clone setzt den Ergebnistyp Object voraus.
und nicht wie im Buch
3. Das Überschreiben von clone setzt das Ergebnistyp Object voraus.
Zwei Absätze nach der Abb. 5.6:
Die Klasse exportiert das, was in ihrer Spezifikation steht. Im Kapitel 2.3.2. auf Seite 34 haben wir kennen gelernt, wie dies einem Benutzer angeboten wird. Eine Unterklasse, die diese Klasse erweitert, kann einiges aus ihrer geschützten Schnittstelle importieren (d.h. benutzen): exportierte Operationen, Wertefunktionen, innere Klassen, usw.
Bei den Standardinformatoren wurde deutlich, dass oftmals gleichzeitig Klassen aus verschiedenen Paketen benutzt werden. Dabei ist es meistens sehr nützlich, manchmal aber etwas lästig, den Namen des importierten Pakets jedes Mal schreiben zu müssen, sobald wir einen von ihm exportierten Namen benutzen. Es trägt aber zur Lesbarkeit des Programms trotz Schreibarbeit bei, wenn mehrere Pakete eingebunden werden. Dann weiß der Leser immer genau, woher die einzelnen Namen kommen. Wird aber wie in unseren bisherigen Beispielen nur ein Paket benutzt, ist es sinnvoll, die von Java gebotene Möglichkeit zu nutzen, das Programm mit dem reservierten Wort import etwas abzukürzen. Dies gilt auch für die Wertefunktionen:
und nicht wie im Buch
Die Klasse exportiert das, was in seiner Spezifikation steht. Im Kapitel 2.3.2. auf Seite 34 haben wir kennen gelernt, wie dies einem Benutzer angeboten wird. Eine Unterklasse, die diese Klasse erweitert, kann einiges aus seiner geschützten Schnittstelle importieren (d.h. benutzen): exportierte Operationen, Wertefunktionen, innere Klassen, usw.
Bei den Standardinformatoren wurde deutlich, dass oftmals gleichzeitig Klassen aus verschiedenen Paketen benutzt werden. Dabei ist es meistens sehr nützlich, manchmal aber etwas lästig, den Namen des importierten Pakets jedes Mal schreiben zu müssen, sobald wir einen von ihm exportierten Namen benutzen. Insbesondere trägt es dann zur Lesbarkeit des Programms trotz Schreibarbeit bei, wenn mehrere Pakete eingebunden werden. Dann weiß der Leser immer genau, woher die einzelnen Namen kommen. Wird aber wie in unseren bisherigen Beispielen nur ein Paket benutzt, ist es sinnvoll, die von Java gebotene Möglichkeit zu nutzen, das Programm mit dem reservierten Wort import etwas abzukürzen. Dies gilt auch für die Wertefunktionen:
Erster Satz des Kapitels:
Die an die Menüpunkte angehängten Prozeduren in den obigen Beispielen können mit einer Rückrufprozedur überschrieben werden, müssen aber nicht.
und nicht wie im Buch
Die an die Menüpunkten angehängten Prozeduren in den obigen Beispielen können mit einer Rückrufprozedur überschrieben werden, müssen aber nicht.
In der letzten Zeile des zweiten Absatzes des Kapitels (in der 8. Zeile von unten an der Seite) soll der kursiv gesetzte Wort unärere richtig unäre heißen:
Operatoren mit zwei Operanden heißen diadische, manchmal auch binäre Operatoren, Operatoren mit einem Operanden heißen monadische (manchmal unäre) Operatoren.
und nicht wie im Buch
Operatoren mit zwei Operanden heißen diadische, manchmal auch binäre Operatoren, Operatoren mit einem Operanden heißen monadische (manchmal unärere) Operatoren.
In der letzten Zeile des ersten Programmstücks steht im Kommentar kein + sondern -:
a --; // Abkürzung für a = a - 1;
und nicht wie im Buch
a --; // Abkürzung für a = a + 1;
Im Abschnitt nach dem obersten Programm auf der Seite ist der Name der Standard-Hüllenklasse nicht java.lang.Int, sondern java.lang.Integer:
Die Standard-Hüllenklasse java.lang.Integer kann zu diesem Zweck nicht benutzt werden, weil sie als final d.h. nicht erweiterbar vereinbart worden ist.
und nicht wie im Buch:
Die Standard-Hüllenklasse java.lang.Int kann zu diesem Zweck nicht benutzt werden, weil sie als final d.h. nicht erweiterbar vereinbart worden ist.
Am Ende der ersten Zeile des Kapitels soll das kursiv gesetzte Wort sequenzielle kleinschreiben werden und nicht groß wie im Buch.
Der letzte Satz auf der Seite soll richtig heißen
Sie werden oft verwendet, um zweidimensionale Reihungen abzuarbeiten.
und nicht wie im Buch:
Sie werden oft verwendet zweidimensionalen Reihungen abzuarbeiten.
Im Übungstext soll heißen:
Erstellen Sie eine Klasse ...
und nicht wie im Buch
Erstellen Sie ein Klasse ...
In der 6. Zeile der Seite von unten (in der 11. Zeile des Programms) soll der Kommentar richtig heißen
// gefundenen Knoten vernichten
und nicht wie im Buch
// gefunden Knoten vernichten
Am Anfang der 8. Zeile der Seite in den Klammern soll applet tag klein geschrieben werden und nicht groß wie im Buch
Der auf der Seite 262 erwähnte Literaturverweis fehlt im Literaturverzeichnis:
[AVL] Adelson-Velskii, Landis: Ein Algorithmus zur Informationsorganisation (auf Russisch; Doklady Akademii Nauk SSSR 146 - 1962, Seiten 263-266)
Das Gegenteil des Begriffs geprüfte Ausnahmen ist nicht geprüfte Ausnahmen, sondern ungeprüfte Ausnahmen.
Im Eintrag geschützte Schnittstelle soll der Ausdruck geschützte Komponenten nicht kursiv gesetzt werden.
Der Eintrag logische Operation sollte vor den Eintrag logischer Datentyp umgestellt werden, um die alphabetische Ordnung zu wahren.
Die Einträge Schreibparameter und Schnittstellentyp sollen vertauscht werden, um die alphabetische Ordnung zu wahren.
Der Eintrag Steuerstuktur heißt richtig Steuerstruktur.
Im Eintrag Überdecken soll der Ausdruck geschachtelten Block nicht kursiv gesetzt werden.
© APSIS GmbH , Polling, 2000