Galileo Computing < openbook >Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Exceptions
7 Äußere.innere Klassen
8 Besondere Klassen der Java SE
9 Generics<T>
10 Architektur, Design und angewandte Objektorientierung
11 Die Klassenbibliothek
12 Einführung in die nebenläufige Programmierung
13 Einführung in Datenstrukturen und Algorithmen
14 Einführung in grafische Oberflächen
15 Einführung in Dateien und Datenströme
16 Einführung in die <XML>-Verarbeitung mit Java
17 Einführung ins Datenbankmanagement mit JDBC
18 Bits und Bytes und Mathematisches
19 Die Werkzeuge des JDK
A Die Klassenbibliothek
Stichwort

Download:
- openbook, ca. 24,5 MB
- Aufgaben, ca. 1,1 MB
- Programme, ca. 12,8 MB
Buch bestellen
Ihre Meinung?

Spacer
Java ist auch eine Insel von Christian Ullenboom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
Galileo Computing
1308 S., 10., aktualisierte Auflage, geb., mit DVD
ca. 49,90 Euro, ISBN 978-3-8362-1802-3
PfeilVorwort
PfeilÜber dieses Buch
PfeilDie Zielgruppe
PfeilMein Leben und Java, oder warum es noch ein Java-Buch gibt
PfeilSoftware und Versionen
PfeilDas Buch in der Lehre einsetzen
PfeilOrganisation der Kapitel
PfeilKonventionen
PfeilOnline-Informationen und -Aufgaben
PfeilWeiterbildung durch tutego
PfeilDanksagungen
PfeilFeedback
PfeilVorwort zur 10. Auflage
PfeilVorwort zur 9. Auflage

VorwortZur nächsten Überschrift

»Mancher glaubt, schon darum höflich zu sein, weil er sich überhaupt noch der Worte und nicht der Fäuste bedient.«
– Friedrich Hebbel (1813–1863)

Am 23. Mai 1995 stellten auf der SunWorld in San Francisco der Chef vom damaligen Science Office von Sun Microsystems, John Gage, und Netscape-Mitbegründer Marc Andreessen die neue Programmiersprache Java und deren Integration in den Webbrowser Netscape vor. Damit begann der Siegeszug einer Sprache, die uns elegante Wege eröffnet, um plattformunabhängig zu programmieren und objektorientiert unsere Gedanken abzubilden. Die Möglichkeiten der Sprache und Bibliothek sind an sich nichts Neues, aber so gut verpackt, dass Java angenehm und flüssig zu programmieren ist. Dieses Buch beschäftigt sich in 19 Kapiteln mit Java, den Klassen, der Design-Philosophie und der objektorientierten Programmierung.


Galileo Computing - Zum Seitenanfang

Über dieses BuchZur nächsten ÜberschriftZur vorigen Überschrift


Galileo Computing - Zum Seitenanfang

Die ZielgruppeZur nächsten ÜberschriftZur vorigen Überschrift

Die Kapitel dieses Buchs sind für Einsteiger in die Programmiersprache Java wie auch für Fortgeschrittene konzipiert. Kenntnisse in einer strukturierten Programmiersprache wie C, Delphi oder Visual Basic und Wissen über objektorientierte Technologien sind hilfreich, weil das Buch nicht explizit auf eine Rechnerarchitektur eingeht oder auf die Frage, was Programmieren eigentlich ist. Wer also schon in einer beliebigen Sprache programmiert hat, der liegt mit diesem Buch genau richtig!

Was dieses Buch nicht ist

Dieses Buch darf nicht als Programmierbuch für Anfänger verstanden werden. Wer noch nie programmiert hat und mit dem Wort »Übersetzen« in erster Linie »Dolmetschen« verbindet, der sollte besser ein anderes Tutorial bevorzugen oder parallel lesen. Viele Bereiche aus dem Leben eines Industrieprogrammierers behandelt »die Insel« bis zu einer allgemein verständlichen Tiefe, doch sie ersetzt nicht die Java Language Specification (JLS: http://java.sun.com/docs/books/jls/).

Die Java-Technologien sind in den letzten Jahren explodiert, sodass die anfängliche Überschaubarkeit einer starken Spezialisierung gewichen ist. Heute ist es kaum mehr möglich, alles in einem Buch zu behandeln, und das möchte ich mit der Insel auch auf keinen Fall. Ein Buch, das sich speziell mit der grafischen Oberfläche Swing beschäftigt, ist genauso umfangreich wie die jetzige Insel. Nicht anders verhält es sich mit den anderen Spezialthemen, wie etwa objektorientierter Analyse/Design, UML, verteilter Programmierung, Enterprise JavaBeans, Datenbankanbindung, OR-Mapping, Web-Services, dynamischen Webseiten und vielen anderen Themen. Hier muss ein Spezialbuch die Neugier befriedigen.

Die Insel trainiert die Syntax der Programmiersprache, den Umgang mit den wichtigen Standardbibliotheken, Entwicklungstools und Entwicklungsumgebungen, objektorientierte Analyse und Design, Entwurfsmuster und Programmkonventionen. Sie hilft aber weniger, am Abend bei der Party die hübschen Mädels und coolen IT-Geeks zu beeindrucken und mit nach Hause zu nehmen. Sorry.


Galileo Computing - Zum Seitenanfang

Mein Leben und Java, oder warum es noch ein Java-Buch gibtZur nächsten ÜberschriftZur vorigen Überschrift

Meine ursprüngliche Beschäftigung mit Java hängt eng mit einer universitären Pflichtveranstaltung zusammen. In unserer Projektgruppe befassten wir uns 1997 mit einer objektorientierten Dialogspezifikation. Ein Zustandsautomat musste programmiert werden, und die Frage nach der Programmiersprache stand an. Da ich den Seminarteilnehmern Java vorstellen wollte, arbeitete ich einen Foliensatz für den Vortrag aus. Parallel zu den Folien erwartete der Professor eine Ausarbeitung in Form einer Seminararbeit. Die Beschäftigung mit Java machte mir Spaß und war etwas ganz anderes, als ich bis dahin gewohnt war. Vor Java kodierte ich rund 10 Jahre in Assembler, später dann mit den Hochsprachen Pascal und C, vorwiegend Compiler. Ich probierte aus, schrieb meine Erfahrungen auf und lernte dabei Java und die Bibliotheken kennen. Die Arbeit wuchs mit meinen Erfahrungen. Während der Projektgruppe sprach mich ein Kommilitone an, ob ich nicht Lust hätte, als Referent eine Java-Weiterbildung zu geben. Lust hatte ich – aber keine Unterlagen. So schrieb ich weiter, um für den Kurs Schulungsunterlagen zu haben. Als der Professor am Ende der Projektgruppe nach der Seminararbeit fragte, war die Vorform der Insel schon so umfangreich, dass die vorliegende Einleitung mehr oder weniger zur Seminararbeit wurde.

Das war 1997, und natürlich hätte ich mit dem Schreiben sofort aufhören können, nachdem ich die Seminararbeit abgegeben habe. Doch bis heute schule ich in Java, und das Schreiben ist eine Lernstrategie für mich. Wenn ich mich in neue Gebiete einarbeite, lese ich erst einmal auf Masse und beginne dann, Zusammenfassungen zu schreiben. Erst beim Schreiben wird mir richtig bewusst, was ich noch nicht weiß. Dieses Lernprinzip hat auch zu meinem ersten Buch über Amiga-Maschinensprachprogrammierung geführt. Doch das MC680x0-Buch kam nicht auf den Markt, denn die Verlage konnten mir nur mitteilen, dass die Zeit der Homecomputer vorbei sei.[1](Damit habe ich eine Wette gegen Georg und Thomas verloren – sie durften bei einer großen Imbisskette so viel essen, wie sie wollten. Ich hatte später meinen Spaß, als wir mit dem Auto nach Hause fuhren und dreimal anhalten mussten.) Mit Java war das anders, denn hier war ich zur richtigen Zeit am richtigen Ort. Die Prognosen für Java stehen ungebrochen gut, weil der Einsatz von Java mittlerweile so gefestigt ist wie der von COBOL bei Banken und Versicherungen.

Heute sehe ich die Insel als ein sehr facettenreiches Java-Buch für die ambitionierten Entwickler an, die hinter die Kulissen schauen wollen. Der Detailgrad der Insel wird von keinem anderen (mir bekannten) deutsch- oder englischsprachigen Grundlagenbuch erreicht.[2](Und vermutlich gibt es weltweit kein anderes IT-Fachbuch, das so viele unanständige Wörter im Text versteckt.) Die Erweiterung der Insel macht mir Spaß, auch wenn viele Themen kaum in einem normalen Java-Kurs angesprochen werden.

Abbildung
Galileo Computing - Zum Seitenanfang

Software und VersionenZur nächsten ÜberschriftZur vorigen Überschrift

Als Grundlage für dieses Buch dient die Java Platform Standard Edition (Java SE) in der Version 7 in der Implementierung von Oracle, die Java Development Kit (Oracle JDK, kurz JDK) genannt wird. Das JDK besteht im Wesentlichen aus einem Compiler und einer Laufzeitumgebung (JVM) und ist für die Plattformen Windows, Linux und Solaris erhältlich. Ist das System kein Windows, Linux oder Solaris, gibt es Laufzeitumgebungen von anderen Unternehmen bzw. vom Hersteller der Plattform: Für Apples Mac OS X gibt es die Java-Laufzeitumgebung von Apple selbst (die bald Teil des OpenJDK sein wird), und IBM bietet für IBM System i (ehemals iSeries) ebenfalls eine Laufzeitumgebung. Die Einrichtung dieser Exoten wird in diesem Buch nicht besprochen.

Eine grafische Entwicklungsoberfläche (IDE) ist kein Teil des JDK. Zwar verlasse ich mich ungern auf einen Hersteller, weil die Hersteller unterschiedliche Entwicklergruppen ansprechen, doch sollen in diesem Buch die freien Entwicklungsumgebungen Eclipse und NetBeans Verwendung finden. Die Beispielprogramme lassen sich grundsätzlich mit beliebigen anderen Entwicklungsumgebungen, wie etwa IntelliJ IDEA oder Oracle JDeveloper, verarbeiten oder mit einem einfachen ASCII-Texteditor, wie Notepad (Windows) oder vi (Unix), eingeben und auf der Kommandozeile übersetzen. Diese Form der Entwicklung ist allerdings nicht mehr zeitgemäß, sodass ein grafischer Kommandozeilen-Aufsatz die Programmerstellung vereinfacht.

Welche Java-Version verwenden wir?

Seit Oracle (damals noch von Sun geführt) die Programmiersprache Java 1995 mit Version 1.0 vorgestellt hat, drehte sich die Versionsspirale bis Version 7 (was gleichbedeutend mit Versionsnummer 1.7 ist). Besonders für Java-Buch-Autoren stellt sich die Frage, auf welcher Java-Version ihr Text aufbauen muss und welche Bibliotheken es beschreiben soll. Ich habe das Problem so gelöst, dass ich immer die Möglichkeiten der neuesten Version beschreibe, was zur Drucklegung die Java SE 7 war. Für die Didaktik der objektorientierten Programmierung ist die Versionsfrage glücklicherweise unerheblich.

Da viele Unternehmen noch unter Java 5 entwickeln, wirft die breite Nutzung von Features der Java-Version 7 unter Umständen Probleme auf, denn nicht jedes Beispielprogramm aus der Insel lässt sich per Copy & Paste fehlerfrei in das eigene Projekt übertragen. Da Java 7 fundamentale neue Möglichkeiten in der Programmiersprache bietet, kann ein Java 5- oder Java 6-Compiler natürlich nicht alles übersetzen. Um das Problem zu entschärfen und um nicht viele Beispiele im Buch ungültig zu machen, werden die Bibliotheksänderungen und Sprachneuerungen von Java 7 zwar ausführlich in den einzelnen Kapiteln beschrieben, aber die Beispielprogramme in anderen Kapiteln bleiben auf dem Sprachniveau von Java 5 bzw. Java 6.[3](In Java 6 wurden keine neuen Spracheigenschaften hinzugefügt, nur eine Kleinigkeit bei der Gültigkeit der @Override-Annotation änderte sich.) So laufen mehrheitlich alle Programme unter den verbreiteten Versionen Java 5 und Java 6. Auch wenn die Sprachänderungen von Java 7 zu einer Verkürzung führen, ist es unrealistisch anzunehmen, dass jedes Unternehmen kurz nach der Herausgabe der neuen Java-Version und der 10. Auflage der Insel auf Java 7 wechselt. Es ist daher nur naheliegend, das Buch für eine breite Entwicklergemeinde auszulegen, anstatt für ein paar Wenige, die sofort mit der neusten Version arbeiten können. Erst in der nächsten Auflage, die synchron mit Java 8 folgt, werden die Beispiele überarbeitet und wenn möglich an die neuen Sprachmittel von Java 7 angepasst.


Galileo Computing - Zum Seitenanfang

Das Buch in der Lehre einsetzenZur nächsten ÜberschriftZur vorigen Überschrift

»Die Insel« eignet sich ideal zum Selbststudium. Das erste Kapitel dient zum Warmwerden und plaudert ein wenig über dieses und jenes. Wer auf dem Rechner noch keine Entwicklungsumgebung installiert hat, der sollte zuerst das JDK von Oracle installieren.

Weil das JDK nur Kommandozeilentools installiert, sollte jeder Entwickler eine grafische IDE (Integrated Development Environment) installieren, da eine IDE die Entwicklung von Java-Programmen deutlich komfortabler macht. Eine IDE bietet gegenüber der rohen Kommandozeile einige Vorteile:

  • Das Editieren, Kompilieren und Laufenlassen eines Java-Programms ist schnell und einfach über einen Tastendruck oder Mausklick möglich.
  • Ein Editor sollte die Syntax von Java farbig hervorheben (Syntax-Highlighting).
  • Eine kontextsensitive Hilfe zeigt bei Methoden die Parameter an, und gleichzeitig verweist sie auf die API-Dokumentation.

Weitere Vorteile wie GUI-Builder, Projektmanagement und Debuggen sollen jetzt keine Rolle spielen. Wer neu in die Programmiersprache Java einsteigt, wird an Eclipse seine Freude haben. Es wird im ersten Kapitel ebenfalls beschrieben.

Zum Entwickeln von Software ist die Hilfe unerlässlich. Sie ist von der Entwicklungsumgebung in der Regel über einen Tastendruck einsehbar oder online zu finden. Unter welcher URL sie verfügbar ist, erklärt ebenfalls Kapitel 1.

Richtig los geht es mit Kapitel 2, und von da an geht es didaktisch Schritt für Schritt weiter. Wer Kenntnisse in C hat, kann Kapitel 2 überblättern. Wer schon in C++/C# objektorientiert programmiert hat, kann Kapitel 3 überfliegen und dann einsteigen. Objektorientierter Mittelpunkt des Buchs ist Kapitel 5: Es vermittelt die OO-Begriffe Klasse, Methode, Assoziation, Vererbung, dynamisches Binden... Nach Kapitel 5 ist die objektorientierte Grundausbildung abgeschlossen, und nach Kapitel 9 sind die Grundlagen von Java bekannt. Es folgen Vertiefungen in einzelne Bereiche der Java-Bibliothek.

Mit diesem Buch und einer Entwicklungsumgebung Ihres Vertrauens können Sie die ersten Programme entwickeln. Um eine neue Programmiersprache zu erlernen, reicht das Lesen aber nicht aus. Mit den Übungsaufgaben auf der DVD können Sie deshalb auch Ihre Fingerfertigkeit trainieren. Da Lösungen beigelegt sind, lassen sich die eigenen Lösungen gut mit den Musterlösungen vergleichen. Vielleicht bietet die Buchlösung noch eine interessante Lösungsidee oder Alternative an.

Persönliche Lernstrategien

Wer das Buch im Selbststudium nutzt, wird wissen wollen, was eine erfolgreiche Lernstrategie ist. Der Schlüssel zur Erkenntnis ist, wie so oft, die Lernpsychologie, die untersucht, unter welchen Lesebedingungen ein Text optimal verstanden werden kann. Die Methode, die ich vorstellen möchte, heißt PQ4R-Methode, benannt nach den Anfangsbuchstaben der Schritte, die die Methode vorgibt:

  • Vorschau (Preview): Zunächst sollten Sie sich einen ersten Überblick über das Kapitel verschaffen, etwa durch Blättern im Inhaltsverzeichnis und in den Seiten der einzelnen Kapitel. Schauen Sie sich die Abbildungen und Tabellen etwas länger an, da sie schon den Inhalt verraten und Lust auf den Text vermitteln.
  • Fragen (Question): Jedes Kapitel versucht, einen thematischen Block zu vermitteln. Vor dem Lesen sollten Sie sich überlegen, welche Fragen das Kapitel beantworten soll.
  • Lesen (Read): Jetzt geht’s los, der Text wird durchgelesen. Wenn es nicht gerade ein geliehenes Bücherei-Buch ist, sollten Sie Passagen, die Ihnen wichtig erscheinen, mit vielen Farben hervorheben und mit Randbemerkungen versehen. Gleiches gilt für neue Begriffe. Die zuvor gestellten Fragen sollte jeder beantworten können. Sollten neue Fragen auftauchen – im Gedächtnis abspeichern!
  • Nachdenken (Reflect): Egal, ob motiviert oder nicht – das ist ein interessantes Ergebnis einer anderen Studie –, lernen kann jeder immer. Der Erfolg hängt nur davon ab, wie tief das Wissen verarbeitet wird (elaborierte Verarbeitung). Dazu müssen die Themen mit anderen Themen verknüpft werden. Überlegen Sie, wie die Aussagen mit den anderen Teilen zusammenpassen. Dies ist auch ein guter Zeitpunkt für praktische Übungen. Für die angegebenen Beispiele im Buch sollten Sie sich eigene Beispiele überlegen. Wenn der Autor eine if-Abfrage am Beispiel des Alters beschreibt, wäre eine eigene Idee etwa eine if-Abfrage zur Hüpfballgröße.
  • Wiedergeben (Recite): Die zuvor gestellten Fragen sollten sich nun beantworten lassen, und zwar ohne den Text. Für mich ist das Schreiben eine gute Möglichkeit, um über mein Wissen zu reflektieren, doch sollte dies jeder auf seine Weise tun. Allemal ist es lustig, sich während des Duschens über alle Schlüsselwörter und ihre Bedeutung, den Zusammenhang zwischen abstrakten Klassen und Schnittstellen usw. klar zu werden. Ein Tipp: Lautes Erklären hilft bei vielen Arten der Problemlösung – quatschen Sie einfach mal den Toaster zu. Noch schöner ist es, mit jemandem zusammen zu lernen und sich gegenseitig die Verfahren zu erklären. Eine interessante Visualisierungstechnik ist die Mind-Map. Sie dient dazu, den Inhalt zu gliedern.
  • Rückblick (Review): Nun gehen Sie das Kapitel noch einmal durch und schauen, ob Sie alles ohne weitere Fragen verstanden haben. Manche »schnellen« Erklärungen haben sich vielleicht als falsch herausgestellt. Vielleicht klärt der Text auch nicht alles. Dann ist ein an mich gerichteter Hinweis (c.ullenboom@tutego.de) angebracht.

Fokus auf das Wesentliche

Einige Unterkapitel sind für erfahrene Programmierer oder Informatiker geschrieben. Besonders der Neuling wird an einigen Stellen den sequenziellen Pfad verlassen müssen, da spezielle Kapitel mehr Hintergrundinformationen und Vertrautheit mit Programmiersprachen erfordern. Verweise auf C(++), C# oder andere Programmiersprachen dienen aber nicht wesentlich dem Verständnis, sondern nur dem Vergleich.

Einsteiger in Java können noch nicht zwischen dem absolut notwendigen Wissen und einer interessanten Randnotiz unterscheiden. Die Insel gewichtet aus diesem Grund das Wissen auf zwei Arten. Zunächst gibt es vom Text abgesetzte Boxen, die zum Teil spezielle und fortgeschrittene Informationen bereitstellen. Des Weiteren enden einige Überschriften auf ein *, was bedeutet, dass dieser Abschnitt übersprungen werden kann, ohne dass dem Leser etwas Wesentliches für die späteren Kapitel fehlt.


Galileo Computing - Zum Seitenanfang

Organisation der KapitelZur nächsten ÜberschriftZur vorigen Überschrift

Kapitel 1, »Java ist auch eine Sprache«, zeigt die Besonderheiten der Sprache Java auf. Einige Vergleiche mit anderen populären objektorientierten Sprachen werden gezogen. Die Absätze sind nicht besonders technisch und beschreiben auch den historischen Ablauf der Entwicklung von Java. Das Kapitel ist nicht didaktisch aufgebaut, sodass einige Begriffe erst in den weiteren Kapiteln vertieft werden; Einsteiger sollten es querlesen. Ebenso wird hier dargestellt, wie das Java JDK von Oracle zu beziehen und zu installieren ist, damit die ersten Programme übersetzt und gestartet werden können.

Richtig los geht es in Kapitel 2, »Imperative Sprachkonzepte«. Es hebt Variablen, Typen und die imperativen Sprachelemente hervor und schafft mit Anweisungen und Ausdrücken die Grundlagen für jedes Programm. Hier finden auch Fallanweisungen, die diversen Schleifentypen und Methoden ihren Platz. Das alles geht noch ohne große Objektorientierung.

Objektorientiert wird es dann in Kapitel 3, »Klassen und Objekte«. Dabei kümmern wir uns erst einmal um die in der Standardbibliothek vorhandenen Klassen und entwickeln eigene Klassen später. Die Bibliothek ist so reichhaltig, dass allein mit den vordefinierten Klassen schon viele Programme entwickelt werden können. Speziell die bereitgestellten Datenstrukturen lassen sich vielfältig einsetzen.

Wichtig ist für viele Probleme auch der in Kapitel 4 vorgestellte »Umgang mit Zeichenketten«. Die beiden notwendigen Klassen Character für einzelne Zeichen und String, StringBuffer/StringBuilder für Zeichenfolgen werden eingeführt, und auch ein Abschnitt über reguläre Ausdrücke fehlt nicht. Bei den Zeichenketten müssen Teile ausgeschnitten, erkannt und konvertiert werden. Ein split() vom String und der Scanner zerlegen Zeichenfolgen anhand von Trennern in Teilzeichenketten. Format-Objekte bringen beliebige Ausgaben in ein gewünschtes Format. Dazu gehört auch die Ausgabe von Dezimalzahlen.

Mit diesem Vorwissen über Objekterzeugung und Referenzen kann der nächste Schritt erfolgen: In Kapitel 5 werden wir »Eigene Klassen schreiben«. Anhand von Spielen und Räumen modellieren wir Objekteigenschaften und zeigen Benutzt- und Vererbungsbeziehungen auf. Wichtige Konzepte – wie statische Eigenschaften, dynamisches Binden, abstrakte Klassen und Schnittstellen (Interfaces) sowie Sichtbarkeit – finden dort ihren Platz. Da Klassen in Java auch innerhalb anderer Klassen liegen können (innere Klassen), setzt sich ein eigenes Unterkapitel damit auseinander.

Ausnahmen, die wir in Kapitel 6, »Exceptions«, behandeln, bilden ein wichtiges Rückgrat in Programmen, da sich Fehler kaum vermeiden lassen. Da ist es besser, die Behandlung aktiv zu unterstützen und den Programmierer zu zwingen, sich um Fehler zu kümmern und diese zu behandeln.

Kapitel 7, »Äußere.innere Klassen«, beschreibt, wie sich Klassen ineinander verschachteln lassen. Das verbessert die Kapselung, denn auch Implementierungen können dann sehr lokal sein.

Kapitel 8, »Besondere Klassen der Java SE«, geht auf die Klassen ein, die für die Java-Bibliothek zentral sind, etwa Vergleichsklassen, Wrapper-Klassen oder die Klasse Object, die die Oberklasse aller Java-Klassen ist.

Mit Generics lassen sich Klassen, Schnittstellen und Methoden mit einer Art Typ-Platzhalter deklarieren, wobei der konkrete Typ erst später festgelegt wird. Kapitel 9, »Generics<T>«, gibt einen Einblick in die Technik.

Danach sind die Fundamente gelegt, und die verbleibenden Kapitel dienen dazu, das bereits erworbene Wissen auszubauen. Kapitel 10, »Architektur, Design und angewandte Objektorientierung«, zeigt Anwendungen guter objektorientierter Programmierung und stellt Entwurfsmuster (Design-Pattern) vor. An unterschiedlichen Beispielen demonstriert das Kapitel, wie Schnittstellen und Klassenhierarchien gewinnbringend in Java eingesetzt werden. Es ist der Schlüssel dafür, nicht nur im Kleinen zu denken, sondern auch große Applikationen zu schreiben.

Nach den ersten zehn Kapiteln haben die Leser die Sprache Java nahezu komplett kennengelernt. Da Java aber nicht nur eine Sprache ist, sondern auch ein Satz von Standardbibliotheken, konzentriert sich die zweite Hälfe des Buchs auf die grundlegenden APIs. Jeweils am Ende eines Kapitels findet sich ein Unterkapitel »Zum Weiterlesen« mit Verweisen auf interessante Internetadressen – in der Java-Sprache finally{} genannt. Hier kann der Leser den sequenziellen Pfad verlassen und sich einzelnen Themen widmen, da die Themen in der Regel nicht direkt voneinander abhängen.

Die Java-Bibliothek besteht aus mehr als 4.000 Klassen, Schnittstellen, Aufzählungen, Ausnahmen und Annotationen. Das Kapitel 11, »Die Klassenbibliothek«, (und auch der Anhang A) gibt eine Übersicht über die wichtigsten Pakete und greift einige Klassen aus der Bibliothek heraus, etwa zum Laden von Klassen. Hier sind auch Klassen zur Konfiguration von Anwendungen oder Möglichkeiten zum Ausführen externer Programme zu finden.

Die Kapitel 11 bis 16 geben einen Überblick über spezielle APIs auf. Die Bibliotheken sind sehr umfangreich, und das aufbauende Java-Expertenbuch vertieft die API weiter. Kapitel 12 gibt eine »Einführung in die nebenläufige Programmierung«. Kapitel 13, »Einführung in Datenstrukturen und Algorithmen«, zeigt praxisnah geläufige Datenstrukturen wie Listen, Mengen und Assoziativspeicher. Einen Kessel Buntes bietet Kapitel 14, »Einführung in grafische Oberflächen«, wo es um die Swing-Bibliothek geht. Darüber, wie aus Dateien gelesen und geschrieben wird, gibt Kapitel 15, »Einführung in Dateien und Datenströme«, einen Überblick. Da Konfigurationen und Daten oftmals im XML-Format vorliegen, zeigt Kapitel 16, »Einführung in die <XML>-Verarbeitung mit Java«, auf, welche Möglichkeiten zur XML-Verarbeitung die Bibliothek bietet. Wer stattdessen eine relationale Datenbank bevorzugt, der findet in Kapitel 17, »Einführung ins Datenbankmanagement mit JDBC«, Hilfestellungen. Alle genannten Kapitel geben aufgrund der Fülle nur einen Einblick, und ihre Themen werden im zweiten Band noch tiefer aufgefächert.

Kapitel 18 stellt »Bits und Bytes und Mathematisches« vor. Die Klasse Math hält typische mathematische Methoden bereit, um etwa trigonometrische Berechnungen durchzuführen. Mit einer weiteren Klasse können Zufallszahlen erzeugt werden. Auch behandelt das Kapitel den Umgang mit beliebig langen Ganz- oder Fließkommazahlen. Die meisten Entwickler benötigen nicht viel Mathematik, daher ist es das Schlusskapitel.

Abschließend liefert Kapitel 19, »Die Werkzeuge des JDK«, eine Kurzübersicht der Kommandozeilenwerkzeuge javac zum Übersetzen von Java-Programmen und java zum Starten der JVM und Ausführen der Java-Programme.

Anhang A, »Die Klassenbibliothek« erklärt alle Java-Pakete kurz mit einem Satz und zudem alle Typen im absolut essenziellen Paket java.lang.


Galileo Computing - Zum Seitenanfang

KonventionenZur nächsten ÜberschriftZur vorigen Überschrift

Abbildung

In diesem Buch werden folgende Konventionen verwendet:

  • Neu eingeführte Begriffe sind kursiv gesetzt, und der Index verweist genau auf diese Stelle. Des Weiteren sind Dateinamen, HTTP-Adressen, Namen ausführbarer Programme, Programmoptionen und Dateiendungen (.txt) kursiv. Einige Links führen nicht direkt zur Ressource, sondern werden über http://www.tutego.de/go zur tatsächlichen Quelle umgeleitet, was Änderungen erleichtert.
  • Begriffe der Benutzeroberfläche stehen in Kapitälchen.
  • Listings, Methoden und sonstige Programmelemente sind in nicht-proportionaler Schrift gesetzt. An einigen Stellen wurde hinter eine Listingzeile ein abgeknickter Pfeil als Sonderzeichen gesetzt, das den Zeilenumbruch markiert. Der Code aus der nächsten Zeile gehört also noch zur vorigen.
  • Um im Programmcode Compilerfehler oder Laufzeitfehler anzuzeigen, steht in der Zeile ein Fehler. So ist auf den ersten Blick abzulesen, dass die Zeile nicht compiliert wird oder zur Laufzeit aufgrund eines Programmierfehlers eine Ausnahme auslöst. Beispiel:
  • int p = new java.awt.Point(); // Fehler Compilerfehler: Type mismatch

  • Bei Compilerfehlern – wie im vorangehenden Punkt – kommen die Fehlermeldungen in der Regel von Eclipse. Sie sind dort anders benannt als in NetBeans bzw. dem Kommandozeilencompiler javac. Aber natürlich führen beide Compiler zu ähnlichen Fehlern.
  • Bei Methodennamen im Fließtext folgt immer ein Klammerpaar. Die Parameter werden nur dann aufgeführt, wenn sie wichtig sind.
  • Um eine Gruppe von Methoden anzugeben, symbolisiert die Kennung XXX einen Platzhalter. So zeigt zum Beispiel printXXX() die Methoden println(), print() und printf() an. Aus dem Kontext geht hervor, welche Methoden gemeint sind.
  • Raider heißt jetzt Twix, und Sun ging Anfang 2010 an Oracle. Auch wenn es für langjährige Entwickler hart ist: Der Name »Sun« verschwindet, und der geliebte Datenbankhersteller tritt an seine Stelle. Er taucht immer nur dann auf, wenn es um eine Technologie geht, die von Sun initiiert wurde und in der Zeit auf den Markt kam, in der Sun sie verantwortete.

Programmlistings

Komplette Programmlistings sind wie folgt aufgebaut:

Listing 0.1: Person.java

class Person
{
}

Der abgebildete Quellcode befindet sich in der Datei Person.java. Befindet sich der Typ (Klasse, Aufzählung, Schnittstelle, Annotation) in einem Paket, steht die Pfadangabe beim Dateinamen:

Listing 0.2: com/tutego/insel/Person.java

package com.tutego.insel.Person;
class Person { }

Um Platz zu sparen, stellt das Buch oftmals Quellcode-Ausschnitte dar. Der komplette Quellcode ist auf der DVD beziehungsweise im Internet verfügbar. Hinter dem Typ folgen in dem Fall Kennungen des abgedruckten Teils. Ist nur die Typdeklaration einer Datei ohne package- oder import-Deklaration aufgelistet, so steht hinter dem Dateinamen der Typ, etwa so:

Listing 0.3: Person.java, Person

Listing 0.4: Person.java, House

Im folgenden Fall wird nur die main()-Methode abgebildet:

Listing 0.5: Person.java, main()

Wird ein Ausschnitt einer Datei Person.java abgebildet, steht »Ausschnitt« oder »Teil 1«, »Teil 2«... dabei:

Listing 0.6: Person.java, Ausschnitt

Listing 0.7: Person.java, main() Teil 1

Gibt es Beispielprogramme für bestimmte Klassen, so enden die Klassennamen dieser Programme im Allgemeinen auf -Demo. Für die Java-Klasse DateFormat heißt somit ein Beispielprogramm, das die Funktionalität der Klasse DateFormat vorführt, DateFormatDemo.

API-Dokumentation im Buch

Attribute, Konstruktoren und Methoden finden sich in einer speziellen Auflistung, die es ermöglicht, sie leicht im Buch zu finden und die Insel als Referenzwerk zu nutzen.

abstract class java.text.DateFormat
extends Format
implements Cloneable, Serializable
  • Date parse(String source) throws ParseException
    Parst einen Datum- oder einen Zeit-String.

Im Rechteck steht der vollqualifizierte Klassen- oder Schnittstellenname (etwa die Klasse DateFormat im Paket java.text) beziehungsweise der Name der Annotation. In den nachfolgenden Zeilen sind die Oberklasse (DateFormat erbt von Format) und die implementierten Schnittstellen (DateFormat implementiert Cloneable und Serializable) aufgeführt. Da jede Klasse, die keine explizite Oberklasse hat, automatisch von Object erbt, ist diese nicht extra angegeben. Die Sichtbarkeit ist, wenn nicht anders angegeben, public, da dies für Bibliotheksmethoden üblich ist. Wird eine Schnittstelle beschrieben, sind die Methoden automatisch abstrakt und öffentlich, und die Schlüsselwörter abstract und public werden nicht zusätzlich angegeben. In der anschließenden Aufzählung folgen Konstruktoren, Methoden und Attribute. Wenn nicht anders angegeben, ist die Sichtbarkeit public. Sind mit throws Fehler angegeben, dann handelt es sich nicht um RuntimeExceptions, sondern nur um geprüfte Ausnahmen. Veraltete (deprecated) Methoden sind nicht aufgeführt, lediglich, wenn es überhaupt keine Alternative gibt.

Ausführbare Programme

Ausführbare Programme auf der Kommandozeile sind durch ein allgemeines Dollarzeichen am Anfang zu erkennen (auch wenn andere Betriebssysteme und Kommandozeilen ein anderes Prompt anzeigen). Die vom Anwender einzugebenden Zeichen sind fett gesetzt, die Ausgabe nicht:

$ java FirstLuck
Hart arbeiten hat noch nie jemanden getötet. Aber warum das Risiko auf sich nehmen?

Über die richtige Programmierer-»Sprache«

Die Programmierer-Sprache in diesem Buch ist Englisch, um ein Vorbild für »echte« Programme zu sein. Bezeichner wie Klassennamen, Methodennamen und auch eigene API-Dokumentationen sind auf Englisch, um eine Homogenität mit der englischen Java-Bibliothek zu schaffen. Zeichenketten und Konsolenausgaben sowie die Zeichenketten in Ausnahmen (Exceptions) sind in der Regel auf Deutsch, da es in realistischen Programmen kaum hart einkodierte Meldungen gibt – spezielle Dateien halten unterschiedliche Landessprachen vor. Zeilenkommentare sind als interne Dokumentation ebenfalls auf Deutsch vorhanden.


Galileo Computing - Zum Seitenanfang

Online-Informationen und -AufgabenZur nächsten ÜberschriftZur vorigen Überschrift

Dieses Buch ist in der aktuellen Version im Internet unter der Adresse http://www.tutego.de/javabuch/ und http://www.galileocomputing.de/ erhältlich. Die Webseiten informieren umfassend über das Buch und über die kommenden Versionen, etwa Erscheinungsdatum oder Bestellnummer. Der Quellcode der Beispielprogramme ist entweder komplett oder mit den bedeutenden Ausschnitten im Buch abgebildet. Ein Zip-Archiv mit allen Beispielen ist auf der Buch-Webseite erhältlich sowie auf die Buch-DVD gepresst. Alle Programmteile sind frei von Rechten und können ungefragt in eigene Programme übernommen und modifiziert werden.

Wer eine Programmiersprache erlernen möchte, muss sie wie eine Fremdsprache sprechen. Begleitend gibt es eine Aufgabensammlung unter http://www.tutego.de/aufgaben/j/, die ebenfalls auf der DVD ist. Viele Musterlösungen sind dabei. Die Seite wird in regelmäßigen Abständen mit neuen Aufgaben und Lösungen aktualisiert.

Passend zur Online-Version verschließt sich das Buch nicht den Kollaborationsmöglichkeiten des Web 2.0. Neue Kapitel und Abschnitte des Buches werden immer im Java-Insel-Blog http://javainselblog.tutego.de/ veröffentlicht.

Abbildung

Abbildung 1: Der Blog zum Buch und mit tagesaktuellen Java-News

Leser erfahren im Blog von allen Aktualisierungen im Buch und können das Geschehen kommentieren. Neben den reinen Updates aus dem Buch publiziert der Blog auch tagesaktuelle Nachrichten über die Java-Welt und Java-Tools. Facebook-Nutzer können ein Fan der Insel werden (http://www.facebook.com/pages/Javainsel/157203814292515), und Twitter-Nutzer können den Nachrichtenstrom unter http://twitter.com/javabuch abonnieren.


Galileo Computing - Zum Seitenanfang

Weiterbildung durch tutegoZur nächsten ÜberschriftZur vorigen Überschrift

Unternehmen, die zur effektiven Weiterbildung ihrer Mitarbeiter IT-Schulungen wünschen, können einen Blick auf http://www.tutego.de/seminare/ werfen. tutego bietet über hundert IT-Seminare zu Java-Themen, C(++), C#/.NET, Datenbanken (Oracle, MySQL), XML (XSLT, Schema), Netzwerken, Internet, Office etc. Zu den Java-Themen zählen unter anderem:

  • Java-Einführung, Java für Fortgeschrittene, Java für Umsteiger
  • Softwareentwicklung mit Eclipse
  • nebenläufiges Programmieren mit Threads
  • JavaServer Faces (JSF), JavaServer Pages (JSP), Servlets und weitere Web-Technologien
  • Datenbankanbindung mit JDBC, OR-Mapping mit JPA und Hibernate
  • Java EE, EJB
  • grafische Oberflächen mit Swing und JFC; Eclipse RPC, SWT
  • Java und XML, JAXB
  • Android

Galileo Computing - Zum Seitenanfang

DanksagungenZur nächsten ÜberschriftZur vorigen Überschrift

Der größte Dank gebührt Sun Microsystems, die 1991 mit der Entwicklung begannen. Ohne Sun gäbe es kein Java, und ohne Java gäbe es auch nicht dieses Java-Buch. Dank gehört auch der Oracle Company als Käufer von Sun, denn vielleicht wäre ohne die Übernahme Java bald am Ende gewesen.

Die professionellen, aufheiternden Comics stammen von Andreas Schultze (Akws@aol.com). Ich danke auch den vielen Buch- und Artikelautoren für ihre interessanten Werke, aus denen ich mein Wissen über Java schöpfen konnte. Ich danke meinen Eltern für ihre Liebe und Geduld und meinen Freunden und Freundinnen für ihr Vertrauen. Ein weiteres Dankeschön geht an verschiedene treue Leser, deren Namen aufzulisten viel Platz kosten würde; ihnen ist die Webseite http://www.tutego.de/javabuch/korrekteure.html gewidmet.

Java lebt – vielleicht sollte ich sogar »überlebt« sagen ... – durch viele freie gute Tools und eine aktive Open-Source-Community. Ein Dank geht an alle Entwickler, die großartige Java-Tools wie Eclipse, NetBeans, Ant, Maven, GlassFish, Tomcat, JBoss und Hunderte andere Bibliotheken schreiben und warten: Ohne Sie wäre Java heute nicht da, wo es ist.

Abschließend möchte ich dem Verlag Galileo Press meinen Dank für die Realisierung und die unproblematische Zusammenarbeit aussprechen. Für die Zusammenarbeit mit meiner Lektorin Judith bin ich sehr dankbar.


Galileo Computing - Zum Seitenanfang

FeedbackZur vorigen Überschrift

Auch wenn wir die Kapitel noch so sorgfältig durchgegangen sind, ist es nicht auszuschließen, dass es noch Unstimmigkeiten[4](Bei mir wird gerne ein »wir« zum »wie« – wie(r) dumm, dass die Tasten so eng beieinanderliegen.) gibt; vielmehr ist es bei 1.000 Seiten wahrscheinlich. Wer Anmerkungen, Hinweise, Korrekturen oder Fragen zu bestimmten Punkten oder zur allgemeinen Didaktik hat, der sollte sich nicht scheuen, mir eine E-Mail unter der Adresse c.ullenboom@tutego.de zu senden. Ich bin für Anregung, Lob und Tadel stets empfänglich.

In der Online-Version des Buchs haben wir eine besondere Möglichkeit zur Rückmeldung: Unter jedem Kapitel gibt es eine Textbox, sodass Leser uns schnell einen Hinweis schicken können. In der Online-Version können wir zudem Fehler schnell korrigieren, denn es gibt zum Teil bedauerliche Konvertierungsprobleme vom Buch ins HTML-Format, und einige Male blieb das Hochzeichen (^) auf der Strecke, sodass statt »2^16« im Text ein »216« die Leser verwunderte.

Und jetzt wünsche ich Ihnen viel Spaß beim Lesen und Lernen von Java!

Sonsbeck im Jahr 2011, Jahr 1 nach Oracles Übernahme
Christian Ullenboom



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.







<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java 7 – Mehr als eine Insel





 Java 7 –
 Mehr als eine Insel


Zum Katalog: Android 3






 Android 3


Zum Katalog: Android-Apps entwickeln






 Android-Apps
 entwickeln


Zum Katalog: NetBeans Platform 7






 NetBeans
 Platform 7


Zum Katalog: Einstieg in Eclipse 3.7






 Einstieg in
 Eclipse 3.7


Zum Katalog: Einstieg in Java






 Einstieg
 in Java


Zum Katalog: Einstieg in Java 7






 Einstieg in
 Java 7


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de