1.2 Über das Buch
Ich möchte nun noch erläutern, wie das Buch konzipiert bzw. gedacht ist. Es ist ein Lehrbuch für den ambitionierten Einstieg in die Programmierung mit Java. Dabei steht Java als Sprache und die Objektorientierung als Konzept im Fokus. Es soll Ihnen sowohl beim Selbststudium helfen als auch Basis dafür sein, in entsprechenden Kursen und Seminaren Java zu lernen.
1.2.1 An wen sich das Buch wendet
Das Buch wendet sich im Wesentlichen an Leser, die von Grund auf den sicheren Umgang mit Java lernen wollen. Sie haben ein Einsteigerbuch vorliegen, das von Anfang an den Umgang mit der objektorientierten Programmierung mit Java und ergänzenden Technologien erklärt. Allerdings werden wir nicht auf einem zu niedrigen Level aufzusetzen und auch bis zu fortgeschrittenen Java-Techniken kommen. Aber wir werden vor allem an Anfang sehr langsam und grundlegend beginnen.
Diese Beschreibung der Zielgruppe soll bedeuten, Sie benötigen nicht unbedingt Vorwissen im Bereich Programmierung. Allerdings erleichtert es den Umgang mit dem Buch, wenn Sie schon einmal ein Programm oder Skript geschrieben haben (egal in welcher Programmiersprache) oder zumindest wissen, was Programmierung ist. Was ich bei einem Leser voraussetzen möchte, ist Folgendes:
- Sie haben einen Rechner zur Verfügung und können ihn einigermaßen sicher bedienen. Das bedeutet, Sie kennen sich in Grundzügen mit Ihrem Betriebssystem aus.
- Sie sollten Zugang zum Internet haben. Ein eigener Internetanschluss ist zwar nicht für die Programmierung mit Java selbst relevant. Aber Java und dessen Tools sind mit Internet besser zu nutzen. Ebenso werden viele Quellen zu Java auf das Internet verweisen.
- Was sollten Sie an persönlichen Voraussetzungen mitbringen, um Programmieren mit Java zu lernen? Wie beim Lernen aller Programmier- oder Skriptsprachen sollten Sie eine gewisse Hartnäckigkeit und Geduld mitbringen und vor allem Fehler als Teil des Lernens verstehen. Programmieren zu lernen bedeutet nicht zuletzt, sich selbst genügend Zeit zu geben. Wenn Sie einigermaßen mathematisch, logisch bzw. abstrakt denken können, wird es das Programmieren erleichtern.
1.2.2 Wie dieses Buch organisiert ist
Die Kapitel in diesem Buch sind immer gleich aufgebaut. Am Anfang erhalten Sie einen kurzen Ausblick auf das, was Sie in dem aktuellen Kapitel lernen werden. Danach folgt der eigentliche Stoff. Am Ende des Kapitels finden Sie eine Zusammenfassung zu den im Kapitel behandelten Themen.
Die Quellcodes des Buchs finden Sie nach Kapiteln sortiert auf der Buch-CD. Die Namen der jeweilig aktuellen Dateien bzw. Projekte werden als Hinweise oder direkt im Text vor den jeweiligen Beispielen angegeben und bei Bedarf wiederholt. Ich empfehle allerdings, dass Sie die Beispiele alle von Hand selbst erstellen. Das ist für das Verständnis und das Lernen eindeutig besser als ein Kopieren oder nur Ansehen.
1.2.3 Schreibkonventionen
In diesem Buch werden verschiedene Schreibkonventionen eingehalten, die Ihnen helfen sollen, die Übersicht zu bewahren. Wichtige Begriffe werden hervorgehoben. Manchmal auch so oder so. Vor allem sollten Sie erkennen können, ob es sich um normalen Text oder Programmcode handelt. Wenn bestimmte Codepassagen mir besonders wichtig erscheinen, werde ich sie so hervorheben. Ebenso werden Tasten und noch einige weitere Besonderheiten gekennzeichnet. Diese Formatierungen werden konsequent verwendet. Und ebenso werden Sie in dem Buch Bereiche vorfinden, die über die Markierung mit verschiedenen Symbolen besondere Aufmerksamkeit erzeugen sollen.
Das ist ein besonderer Hinweis, den Sie an der Stelle beachten sollten.
Es gibt immer wieder verschiedene Tipps, in denen Ratschläge oder besondere Tricks zu einer jeweiligen Situation gezeigt werden.
Vorsicht – hier droht Gefahr.
1 Die Nummerierung bei den Quellcodes
Eine besondere Bemerkung soll noch zu Quelltextpassagen von vollständigen Listings erfolgen. Bei allen vollständigen Listings sowie einigen größeren Quellcodefragmenten werden Sie eine Nummerierung der Quelltextzeilen vorfinden. Diese gehört natürlich nicht zum eigentlichen Quelltext und soll nur die Orientierung für Sie erleichtern, eine neue Zeile im Quelltext verdeutlichen und in meinen Erklärungen zu Quelltexten einen verständlichen Bezug herstellen. In seltenen Fällen kann es vorkommen, dass es aus drucktechnischen Gründen notwendig ist, eine Quelltextzeile auf mehrere Buchzeilen zu verteilen. In diesem Fall zeigen Ihnen die Nummerierungen der Quellcodezeilen an, welche Passagen im Editor noch in eine Zeile zu notieren sind. Solange Sie dort keine neue Zeilennummer finden, müssen (manchmal auch nur sollten, aber egal) Sie im Editor alles noch in eine Zeile schreiben. Das ist besonders bei längeren Strings (Texten in Hochkommata) wichtig, die nicht über mehrere Zeilen verteilt werden dürfen.
2 Quellangaben im Internet
An verschiedenen Stellen im Buch und insbesondere im Anhang werden Sie Quellangaben finden, die ins Internet verweisen. Zum Zeitpunkt der Bucherstellung wurden die Quellen überprüft, aber es kann natürlich immer sein, dass diese Angaben im Laufe der Zeit nicht mehr aktuell sind.
3 Angaben zur Software und zu Bibliotheken
Wenn im Buch auf Software und Bibliotheken verwiesen wird, sollten Sie ebenso die Versionsnummern beachten. Ggf. werden auch hier neue Versionen verfügbar sein und bestimmte Erklärungen nicht mehr zu 100% übereinstimmen.
1.2.4 Was Sie in dem Buch lernen
Wir gehen am Beginn des Buchs langsam und ausführlich vor und besprechen bereits in diesem Kapitel alle notwendigen Voraussetzungen für die Programmierung mit Java. Danach werfen wir einen Blick auf wichtige Java-Entwicklungstools und beginnen gleich mit ersten Beispielen. Im Laufe des Buchs erfahren Sie dann Grundsätzliches zur Idee objektorientierter Programmierung. Natürlich anhand von Java als konkrete Sprache. Sie werden dabei auch eine Einführung in Grundlagen der Programmierung mit Java sowie der wichtigsten Java-Techniken erhalten. Dies umfasst den generellen Programmaufbau bei Java (Klassenbildung) sowie Datentypen, Operatoren, Literale, Variablen und den Umgang mit verschiedenen Anweisungstypen (Kontrollflussanweisungen und Schleifen). Fundamentale OOP-Techniken werden im Buch viel Raum einnehmen. Dies umfasst zuerst einmal allgemeine OO-Konzepte sowie die Gegenüberstellung des prozeduralen und des objektorientierten Programmieransatzes. Dazu kommen vertiefende Themen wie Objekte als Instanzen von Klassen und die Aufgaben von Konstruktoren sowie Destruktoren. Datenkapselung, Nachrichten, Assoziationen, Vererbung, Polymorphie, abstrakte Klassen, Schnittstellen, Paketierung und vertragsbasierte Programmierung sind weitere Schlagworte, die detailliert ausgearbeitet werden. Darüber hinaus behandeln wir auch fortgeschrittene OO-Techniken wie komplexere Datenstrukturen oder Generics. Ebenso wollen wir einen Ausblick auf die Erstellung von grafischen Oberflächen, Dateizugriffen, Multithreading und andere nützliche Anwendunge wagen, obgleich wie gesagt das Konzept von Java als Sprache und die Objektorientierung den Fokus des Buchs bilden.