Kapitel 1 und 2 haben Sie ja bereits gelesen, wir brauchen also nicht noch einmal darauf zurückzukommen. Auch der Inhalt von Kapitel 3 ist Ihnen schon in einem gewissen Maße vertraut. Schauen wir uns also an, was die übrigen Kapitel zu bieten haben.
Die Kapitel 4, 5 und 6 beschäftigen sich mit den elementarsten Eigenschaften der Sprache. Sie erklären die Datentypen von Java und stellen Ausdrücke und Anweisungen vor. Wenn Sie bereits mit C oder C++ vertraut sind, wird Ihnen das dort Geschriebene bekannt vorkommen, denn die Unterschiede sind in diesem Bereich gering. Dennoch gibt es einige elementare, aber wichtige, Unterschiede, und auch als erfahrener C- oder C++-Programmierer sollten Sie nicht vollständig auf die Lektüre der Kapitel 4 bis 6 verzichten.
Kapitel 7 erklärt die objektorientierten Eigenschaften von Java und behandelt einige grundlegende Techniken der objektorientierten Programmierung. Wenn Sie bereits eine objektorientierte Sprache gut beherrschen, wird Ihnen Kapitel 7 wenig Neues bieten. Was die Begriffe Instanzmerkmal, Vererbung oder Polymorphismus bedeuten, ist Ihnen ja längst bekannt. Kennen Sie aber auch schon das Konzept der Interfaces, Javas Beitrag zum Thema Mehrfachvererbung, oder wissen Sie, wie man in Java Methoden dynamisch instanziert? Falls nicht, sollten Sie Kapitel 7 nicht überschlagen. Darüber hinaus ist Kapitel 7 für alle interessant, die bisher nur wenige oder gar keine Erfahrungen mit objektorientierter Programmierung gemacht haben. Sie erfahren dort, welche OOP-Features Java bietet und wie man sie sinnvoll anwendet.
Die Kapitel 8, 9 und 10 sind auch für C- und C++-Profis wieder interessant. Kapitel 8 erläutert das Package-Konzept von Java und leistet damit einen wichtigen Beitrag zur Strukturierung großer Programme sowie zur Verwendung von Bibliotheken von Drittanbietern. Kapitel 9 behandelt den Exception-Mechanismus und erklärt, wie man in Java mit Laufzeitfehlern umgeht. In Kapitel 10 schließlich lernen Sie, was es mit dem eingebauten Multithreading in Java auf sich hat und wie man dieses nützliche Feature am besten einsetzt.
Nach den Kapiteln 4 bis 10 kennen Sie alle grundlegenden Eigenschaften der Programmiersprache Java. Natürlich kommen Sie damit noch nicht sehr weit, denn die ebenso wichtigen Funktionen der Klassenbibliothek fehlen Ihnen noch. In Kapitel 11 lernen Sie die String-Funktionen kennen, die zur Zeichenkettenverarbeitung unbedingt nötig sind. Kapitel 12 stellt wichtige Klassen vor. Hier lernen Sie neben anderen Datenstrukturen beispielsweise die Klasse Vector kennen, mit der eine lineare Liste von Elementen beliebigen Typs realisiert werden kann. Kapitel 13 schließlich stellt die Dateiein- und -ausgabe vor. Nach dem Studium der dort vorgestellten Klassen und Methoden sind Sie in der Lage, alle wichtigen Operationen auf sequentiellen und wahlfreien Dateien auszuführen. Die in diesen drei Kapiteln vorgestellten Konzepte unterscheiden sich wesentlich von den entsprechenden Konzepten in konventionellen Programmiersprachen. Selbst (oder gerade) wenn Sie ein versierter C- oder C++-Programmierer sind, werden Sie also an diesem Teil des Buches nicht vorbeikommen.
Wenn Sie bis hierhin durchgehalten haben, liegt die Pflicht hinter Ihnen, und Sie können sich der Kür zuwenden. Sie beherrschen die grundlegenden Funktionen der Sprache und ihrer Klassenbibliothek und können sich nun mit dem interessanten Thema der Programmierung unter einer grafischen Oberfläche beschäftigen. In den Kapiteln 14 bis 24 erfahren Sie alles über die Programmierung von Fenstern, Grafiken, Menüs, Dialogboxen, Bitmaps, Farben und Animationen. Sie lernen die Grundlagen der GUI-Programmierung kennen, erweitern Ihr Wissen um die Entwicklung von Benutzerschnittstellen und lernen schließlich, wie man bewegte und flackerfreie Grafiken auf den Bildschirm zaubert. Den Abschluß des Buches bildet Kapitel 25, das Sie in die Welt der Programmierung von Java-Applets einführt.
Daß man Bücher unterschiedlich gliedern kann, ist kein Geheimnis. Daß die Beschreibung einer Programmiersprache eine andere Vorgehensweise erfordert als die eines Videospiels, ebenfalls nicht. Ist es nun besser, ein unbekanntes Entwicklungssystem aus einer abstrakten Perspektive kennenzulernen, um mit geringstem Mitteleinsatz frühzeitig sehenswerte Ergebnisse zu produzieren? Oder ist es besser, zunächst die Grundlagen der Programmiersprache zu erlernen und erst später die komplexeren Werkzeuge auf der Basis eines soliden Grundlagenwissens einzusetzen?
Wie die Kapitelaufteilung zeigt, wurde dieses Buch unter der Annahme geschrieben, daß der zweite Ansatz der sinnvollere ist. Das soll keinesfalls heißen, daß dies unter allen Umständen und für alle Leser der Fall ist. Wie oben erwähnt, mag es durchaus sinnvoll sein, zu einer anderen Vorgehensweise zu kommen. Gerade beim Einsatz im professionellen Umfeld hat man durch Termin- und Projektdruck nicht immer die Zeit, die Anwendung neuer Werkzeuge mit der nötigen Ruhe zu erlernen.
Letztendlich müssen Sie selbst entscheiden, welche der Kapitel Sie durchlesen und in welcher Reihenfolge Sie dies tun. Wählen Sie die Technik, die Ihren Neigungen und Erwartungen am meisten entgegenkommt und am besten mit den Beweggründen, aus denen heraus Sie dieses Buch lesen, in Einklang zu bringen ist. Nur dann werden Sie den größtmöglichen Nutzen aus diesem Buch ziehen.