Dem Buch liegt ein didaktisches Konzept zu Grunde, das sich beim Selbststudium und in der Kurs- und Unterrichtspraxis über Jahrzehnte bewährt hat. Der Autor führt sorgfältig in die Sprache ein und ermöglicht es dem Studierenden, die Grundkenntnisse von Java zu erlernen und dadurch das Fundament für den tieferen Einstieg in Java oder jede andere Objektorientierte Sprache zu legen.
Weitere Informationen zu diesem Buch vom Autor.
Inhaltsverzeichnis
1;Inhalt;8 2;Vorwort;18 3;1 Einleitung;22 4;2 Daten und Programme;28 4.1;2.1 Formulierung von Algorithmen;29 4.2;2.2 Die algorithmischen Grundstrukturen;30 4.3;2.3 Klassen und Objekte;30 4.4;2.4 Der Entwicklungsprozess eines Programms;32 5;3 Das erste Java Programm;36 5.1;3.1 Konventionen und Schlüsselwörter;36 5.2;3.2 Grundaufbau eines Java-Programms;38 5.3;3.3 Verwendung von Klassenbibliotheken;41 5.4;3.4 Turtlegrafik, das Schlüsselwort new;44 6;4 Die grundlegenden Programmstrukturen;48 6.1;4.1 Die Sequenz;48 6.2;4.2 Die Iteration (Wiederholung);49 6.3;4.3 Die Selektion (Auswahl);57 6.4;4.4 Varianten der for-Struktur;63 7;5 Elementare Klassenkonstruktionen;68 7.1;5.1 Objektorientiertes Konstruieren;68 7.2;5.2 Methoden in der Applikationsklasse;73 7.3;5.3 Instanzvariablen und lokale Variablen, Sichtbarkeit, Geltungsbereich;76 7.4;5.4 Überladen;82 8;6 Datentypen, Operatoren;86 8.1;6.1 Basistypen;86 8.2;6.2 Standard-Initialisierung;91 8.3;6.3 Zahlendarstellung und Rundungsfehler;91 8.4;6.4 Operatoren und Ausdrücke;93 8.5;6.5 Unsigned Datentypen, big-endian, little-endian;109 8.6;6.6 Spezielle Werte für doubles;111 9;7 Wichtige Standardklassen;114 9.1;7.1 Zeichenketten (Strings);114 9.2;7.2 Arrays (Felder);120 10;8 Das Variablenkonzept;132 10.1;8.1 Zuweisung bei Basis- und Referenztypen;132 10.2;8.2 Sprechweise bei Referenztypen;137 10.3;8.3 Vergleich von Referenztypen;138 10.4;8.4 Parameterübergabe bei Basis- und Referenztypen;139 10.5;8.5 Bezeichner für Instanzvariablen und Parameter;148 10.6;8.6 Namenskonflikte zwischen Variablen und Parametern;149 11;9 Hüllklassen (Wrapper-Klassen);152 12;10 Rekursionen;156 12.1;10.1 Direkte Rekursion, Verankerung;156 12.2;10.2 Prinzip von Teile-und-Herrsche;162 13;11 Formatierung der Ausgabe;166 14;12 Klassendesign;174 14.1;12.1 Vererbung;175 14.2;12.2 Delegation, Aggregation, Komposition;176 14.3;12.3 Klassendiagramme;176 14.4;12.4 Komposition versus Vererbung;177 14.5;12.5 Vererbung des Console-Fensters;179 14.6;12.6 Mustervorl
age für den Klassenentwurf;181 14.7;12.7 Finale Klassen;189 14.8;12.8 Datenkapselung, Abschottung;190 15;13 Zugriffsbezeichner;192 15.1;13.1 Package-Konzept;192 15.2;13.2 Garbage Collection, finalize();198 16;14 Polymorphie, dynamische Bindung;202 17;15 Statische Variablen und Methoden;206 18;16 Dynamische Datentypen, abstrakte Klassen;212 18.1;16.1 Beispiel eines typischen Klassendesigns;212 18.2;16.2 Collections: Hashtable und Enumeration;217 18.3;16.3 Verwendung von Entwurfsmustern: Abstract- Factory;219 19;17 Interfaces;224 19.1;17.1 Interfaces zur losen Kopplung;225 19.2;17.2 Das Interface Comparable;228 19.3;17.3 Interfaces zur Definition von Konstanten;231 19.4;17.4 Interfaces & Komposition statt Vererbung;232 20;18 Ereignissteuerung (Eventhandling);238 20.1;18.1 Ereignismodelle, innere und anonyme Klassen;238 20.2;18.2 Delegations-Eventmodell;240 20.3;18.3 Erstellen eigener Event-Klassen;245 20.4;18.4 Beispiele von GUI-Events;257 20.5;18.5 Reentrance bei Callbackmethoden;283 21;19 Grafik mit Java2D und GWindow;286 21.1;19.1 Das Rendern von Grafiken unter Graphics2D;286 21.2;19.2 Grafik mit GWindow;288 21.3;19.3 Animierte Grafik bei Simulationen;299 22;20 Exceptions;306 22.1;20.1 Robuste Programme;306 22.2;20.2 Try-catch-Blöcke;307 22.3;20.3 Eigene Exceptions, Parsen von Eingaben;313 22.4;20.4 Assertions (Zusicherungen);319 22.5;20.5 Exceptions nach oben werfen;320 23;21 Klassenbibliotheken von Drittherstellern;322 23.1;21.1 Plotlibraries;322 23.2;21.2 Komplexe Zahlen;327 23.3;21.3 Matrizen;331 24;22 Drucken;336 24.1;22.1 Drucken mit Bildschirmauflösung;336 24.2;22.2 Drucken mit Druckerauflösung;336 24.3;22.3 Drucken in Druckerauflösung mit den Klassen Turtle und GPanel;339 25;23 Streams;344 25.1;23.1 Das Java I/0-System;344 25.2;23.2 Dateiverwaltung;345 25.3;23.3 Textdatei lesen;348 25.4;23.4 Textdatei schreiben;350 25.5;23.5 Textdatei mit Zahlen schreiben;351 25.6;23.6 Zahlen aus einer Textdatei lesen;352 25.7;23.7 Binärdatei schreiben und lesen;354 25.8;23
.8 Dateien mit wahlfreiem Zugriff (Random Access);356 25.9;23.9 Serialisierung;358 25.10;23.10 Programmressourcen;361 25.11;23.11 Verpacken in jar-Archiven;364 26;24 Properties;368 27;25 Software engineering;374 27.1;25.1 Die Phasen der Software-Entwicklung (design cycle);374 27.2;25.2 Die Qualität von Software;376 27.3;25.3 Software-Entwicklung im Kleinen;377 28;26 Konstruktoren;386 28.1;26.1 Initialisierung mit Konstruktoren;386 28.2;26.2 Überladene Konstruktoren;388 28.3;26.3 Ablaufreihenfolge bei Konstruktoren;395 28.4;26.4 Statischer Initialisierungsblock;398 28.5;26.5 Verwendung von this in Konstruktoren;399 28.6;26.6 Fehlerabfang in Konstruktoren;400 29;27 Überschreiben von Methoden und Variablen;404 29.1;27.1 Überschreiben von Methoden;404 29.2;27.2 Überschreiben und Verdecken von Variablen;407 29.3;27.3 Zugriffsrechte bei überschriebenen Methoden;409 30;28 Unstrukturierte Sprachelemente;412 30.1;28.1 Vorzeitiges return;412 30.2;28.2 break und continue;414 30.3;28.3 Flags;415 30.4;28.4 Labeled break und labeled continue;417 31;29 Grafische Benutzeroberflächen (GUI);420 31.1;29.1 Grundsätze;420 31.2;29.2 Grafik mit Swing;424 31.3;29.3 Wichtige Ein- und Ausgabekomponenten, Verwendung des Layout-Managers;425 31.4;29.4 Einbetten eines GPanels;459 31.5;29.5 GUI-Mustervorlage;462 32;30 Klonen, flache und tiefe Kopie;478 33;31 Nebenläufigkeit (Multithreading);488 33.1;31.1 Parallele Datenverarbeitung;488 33.2;31.2 Threads;489 33.3;31.3 Sichere Threads, Synchronisation kritischer Bereiche;494 33.4;31.4 Laufzeitverhalten, Terminieren von Programmen;507 33.5;31.5 Das Schlüsselwort volatile;509 34;32 Debugging-Strategien;512 34.1;32.1 Reproduzierbarkeit, Trial and Error;512 34.2;32.2 Versionsmanagement;513 34.3;32.3 Tracen, Debuggen;515 34.4;32.4 Debuggen mit print-Anweisungen;517 35;33 Netzwerk-Programmierung (Sockets);524 35.1;33.1 Computernetzwerke, Schichtenmodell;524 35.2;33.2 Client-Server-Modell;526 35.3;33.3 Client- und Server-Sockets;528 35.4;33.4 Multithreade
d Server;532 35.5;33.5 Telnet, Grundlagen von HTTP;535 35.6;33.6 Echo-Server;541 35.7;33.7 Chat-Client und -Server;545 36;34 Serielle und parallele Schnittstellen;556 36.1;34.1 Installation des Communication-API;556 36.2;34.2 Verwendung der seriellen Schnittstelle;557 36.3;34.3 Programmierung der seriellen Schnittstelle;559 36.4;34.4 Robotics;564 36.5;34.5 Datenakquisition mit Vielfachmessgerät;572 36.6;34.6 Auflisten der vorhandenen Ports;578 36.7;34.7 Verwendung der parallelen Schnittstelle;581 37;35 Sound;586 37.1;35.1 Digitalisierung von Sound;586 37.2;35.2 Das Java Sound-API;587 38;36 AWT/Swing, Animation und Bildtransformation;612 38.1;36.1 Schwergewichtige und leichtgewichtige Komponenten;612 38.2;36.2 Das Rendern von Grafikkomponenten;613 38.3;36.3 Optimierung bei inkrementellen Grafiken;628 38.4;36.4 Affine Bildtransformationen;638 39;37 Applets;642 39.1;37.1 Java's Sandkasten-Prinzip;642 39.2;37.2 Callbackmechanismus für Applets;645 39.3;37.3 Konzept zur Erstellung von klassischen Applets;646 39.4;37.4 Verwendung von Swing;653 39.5;37.5 Applets mit eigenständigem Fenster;658 39.6;37.6 Parsen von XML-Dateien;669 40;38 JDBC;676 40.1;38.1 Relationale Datenbanken;676 40.2;38.2 Verwendung von MySQL;678 40.3;38.3 MS-Access als Datenbank-Client, ODBC;682 40.4;38.4 Client-Applikationen mit JDBC;683 41;39 Reflection;700 41.1;39.1 Laufzeit-Typeninformation;700 41.2;39.2 Dynamische Klassen- und Methodennamen;705 41.3;39.3 Reflection für Klassenbibliotheken;708 42;40 Remote Method Invocation (RMI);714 43;41 Dynamische Web-Seiten;720 43.1;41.1 HyperText Transfer Protocol (HTTP);720 43.2;41.2 Servlets;723 43.3;41.3 Java Server Pages (JSP);729 44;42 Anhang 1: Installation von externen Klassenbibliotheken;784 44.1;42.1 Installation der Standard Extension;784 44.2;42.2 Klassen aus dem Package ch.aplu;784 45;43 Anhang 2: Java Web Start;786 45.1;43.1 Web-Start als Benutzer;786 45.2;43.2 Web-Start als Entwickler;787 46;44 Anhang 3: Hinweise zur Installation von Tomcat (Versio
n 5);792 47;Stichwortverzeichnis;796