|
Inhalt |
5 |
|
|
Vorwort |
13 |
|
|
Hinweise |
15 |
|
|
1 Was ist Java? |
21 |
|
|
1 Was ist Java? |
23 |
|
|
1.1 Warum programmieren? |
23 |
|
|
1.2 Was ist eine Programmiersprache? |
25 |
|
|
1.3 Kann auch ich Java programmieren lernen? |
29 |
|
|
1.4 Die Java-Story |
30 |
|
|
1.5 Wie funktioniert eine Programmiersprache? |
38 |
|
|
1.5.1 Compiler |
40 |
|
|
1.5.2 Interpreter |
41 |
|
|
1.5.3 VMSprachen |
42 |
|
|
1.5.4 Imperative und funktionale Sprachen |
43 |
|
|
1.6 Wie erlernt man eine Programmiersprache? |
47 |
|
|
1.7 Zusammenfassung |
48 |
|
|
1.8 Aufgaben zum Kapitel |
49 |
|
|
1.9 Webseiten zum Kapitel |
50 |
|
|
2 Die Installation von Java |
51 |
|
|
2 Die Installation von Java |
53 |
|
|
2.1 JDK oder JRE? |
53 |
|
|
2.2 Hardwarevoraussetzungen |
54 |
|
|
2.3 Die Installation |
55 |
|
|
2.4 Die Installation der Dokumentation |
63 |
|
|
2.4.1 Aufbau der JDK-Dokumentation |
64 |
|
|
2.4.2 Test und Einsatz der JDK-Dokumentation |
65 |
|
|
2.5 Der Einsatz von Java Web Start |
66 |
|
|
2.6 Demos und Beispiele |
69 |
|
|
2.7 Programmierung ohne Eclipse |
70 |
|
|
2.8 Deinstallation |
73 |
|
|
2.9 Zusammenfassung |
73 |
|
|
2.10 Aufgaben zum Kapitel |
74 |
|
|
2.11 Webseiten zum Kapitel |
75 |
|
|
3 Was ist Eclipse? |
77 |
|
|
3 Was ist Eclipse? |
79 |
|
|
3.1 Was ist eine IDE? |
79 |
|
|
3.1.1 Konzepte einer IDE |
80 |
|
|
3.1.2 Die Konzepte von Eclipse |
83 |
|
|
3.1.3 Eclipse, ein Framework als IDE |
84 |
|
|
3.2 Weitere Eclipse-Sprachen |
85 |
|
|
3.3 So funktioniert eine IDE und so Eclipse |
87 |
|
|
3.4 Zusammenfassung |
91 |
|
|
3.5 Aufgaben zum Kapitel |
91 |
|
|
3.6 Webseiten zum Kapitel |
92 |
|
|
4 Die Installation von Eclipse |
93 |
|
|
4 Die Installation von Eclipse |
95 |
|
|
4.1 Versionen und Milestones |
95 |
|
|
4.2 Hardwarevoraussetzungen |
96 |
|
|
4.3 Die Installation |
97 |
|
|
4.3.1 Installation von Filzip 3.01 |
98 |
|
|
4.3.2 Eclipse entpacken |
99 |
|
|
4.3.3 Eclipse zum ersten Mal starten |
101 |
|
|
4.4 Das Language Pack installieren |
104 |
|
|
4.5 Die Installation von Plugins |
106 |
|
|
4.5.1 Ein UML-Plugin installieren |
106 |
|
|
4.5.2 Den GUI-Builder installieren |
109 |
|
|
4.5.3 Ein Datenbank-Plugin installieren |
109 |
|
|
4.6 Übersicht der Plugins |
110 |
|
|
4.6.1 Plugins updaten/deinstallieren |
110 |
|
|
4.7 Zusammenfassung |
112 |
|
|
4.8 Aufgaben zum Kapitel |
113 |
|
|
4.9 Webseiten zum Kapitel |
113 |
|
|
5 Konzepte der OOP |
117 |
|
|
5 Konzepte der OOP |
119 |
|
|
5.1 Eine uralte Idee für modernste Software |
119 |
|
|
5.1.1 Ein neues, altes Paradigma |
121 |
|
|
5.1.2 Das Objekt und seine Klasse |
122 |
|
|
5.1.3 Ein Baum voller Autos |
124 |
|
|
5.2 UML im Einsatz |
125 |
|
|
5.2.1 Ein Projekt und seine Pakete |
126 |
|
|
5.2.2 Zeichnen statt programmieren |
129 |
|
|
5.2.3 Attribute für unsere Autos |
133 |
|
|
5.2.4 Auch Autos erben |
136 |
|
|
5.2.5 Aus konkret wird abstrakt |
139 |
|
|
5.2.6 Identität der Software in Objekten |
140 |
|
|
5.2.7 Klassifizierung |
143 |
|
|
5.2.8 Vererbung |
144 |
|
|
5.2.9 Polymorphismus |
148 |
|
|
5.3 Zusammenfassung |
155 |
|
|
5.4 Aufgaben zum Kapitel |
157 |
|
|
5.5 Webseiten zum Kapitel |
158 |
|
|
6 Mit Eclipse arbeiten |
159 |
|
|
6 Mit Eclipse arbeiten |
161 |
|
|
6.1 Grundkenntnisse Eclipse |
161 |
|
|
6.2 Die Bestandteile |
162 |
|
|
6.2.1 Die Bausteine |
163 |
|
|
6.2.2 Welt aus Perspektiven |
164 |
|
|
6.2.3 Auf der Suche nach dem verlorenen Editor |
166 |
|
|
6.2.4 Nutzerfreundlichkeit pur |
168 |
|
|
6.3 Die Geburt eines Projektes |
171 |
|
|
6.3.1 Ein neues Projekt anlegen |
171 |
|
|
6.3.2 Arbeitssets |
174 |
|
|
6.3.3 Projekt löschen |
175 |
|
|
6.4 Der Aufbau |
176 |
|
|
6.4.1 Die Perspektiven |
177 |
|
|
6.4.2 Die Menüleiste (Menubar) |
179 |
|
|
6.4.3 Datei |
180 |
|
|
6.4.4 Bearbeiten |
180 |
|
|
6.4.5 Quelle |
181 |
|
|
6.4.6 Refactoring |
183 |
|
|
6.4.7 Navigieren |
186 |
|
|
6.4.8 Suchen |
187 |
|
|
6.4.9 Projekt |
187 |
|
|
6.4.10 Ausführen |
189 |
|
|
6.4.11 Restliche Menüs |
190 |
|
|
6.5 Die Views |
190 |
|
|
6.5.1 Die Navigator- View |
190 |
|
|
6.5.2 Die Editoren |
193 |
|
|
6.6 Projekte übernehmen |
200 |
|
|
6.6.1 Bestehende Projekte und Dateien in ein Eclipse-Projekt übernehmen |
200 |
|
|
6.6.2 JDK-Projekte und einzelne Dateien übernehmen |
201 |
|
|
6.6.3 Ganze Projekte von fremden IDEs übernehmen |
201 |
|
|
6.6.4 Andere Eclipse-Projekte übernehmen |
203 |
|
|
6.6.5 Änderungen an der Paketstruktur bestehender Projekte |
203 |
|
|
6.7 Zusammenfassung |
204 |
|
|
6.8 Aufgaben zum Kapitel |
205 |
|
|
6.9 Webseiten zum Kapitel |
205 |
|
|
7 Java – ein Baukasten für Objekte |
207 |
|
|
7 Java – ein Baukasten für Objekte |
209 |
|
|
7.1 Java und OOP |
209 |
|
|
7.1.1 Vom Umgang mit Objekten |
210 |
|
|
7.1.2 Die API-Dokumentation als Quelle allen Seins |
212 |
|
|
7.1.3 Von abstrakten und konkreten Klassen bis zu den Schnittstellen |
216 |
|
|
7.2 Zum Innenleben der Objekte |
220 |
|
|
7.2.1 Primitive Datentypen |
223 |
|
|
7.2.2 Komplexe Datentypen |
227 |
|
|
7.2.3 Ein paar Worte zu Arrays, Listen und Stacks |
229 |
|
|
7.2.4 Übungen zu den primitiven Datentypen |
229 |
|
|
7.2.5 Die Sichtbarkeit in der Praxis |
240 |
|
|
7.2.6 Die main-Methode |
247 |
|
|
7.2.7 Die Steuerung des Programmflusses |
253 |
|
|
7.3 Zusammenfassung |
262 |
|
|
7.4 Aufgaben zum Kapitel |
263 |
|
|
7.5 Webseiten zum Kapitel |
265 |
|
|
8 OOP in der Praxis |
267 |
|
|
8 OOP in der Praxis |
269 |
|
|
8.1 Unser Projekt Carlipso |
269 |
|
|
8.1.1 Projektdesign adhoc |
270 |
|
|
8.1.2 Die Geschäftsobjekte |
272 |
|
|
8.1.3 Innere Klassen |
274 |
|
|
8.2 Von Vererbung und Polymorphie |
294 |
|
|
8.2.1 Java-Klassen im Besonderen |
295 |
|
|
8.2.2 Die Syntax bei Java-Klassen |
298 |
|
|
8.3 Vom Umgang mit Objekten |
302 |
|
|
8.3.1 Das Zusammenspiel von Klassen, Objekten und Methoden |
304 |
|
|
8.4 ArrayList, auch ein komplexer Typ? |
310 |
|
|
8.4.1 Namensraum in Java |
319 |
|
|
8.5 Im Anfang war das Bild |
320 |
|
|
8.6 Zusammenfassung |
328 |
|
|
8.7 Aufgaben zum Kapitel |
330 |
|
|
8.8 Webseiten zum Kapitel |
332 |
|
|
9 Java-Oberflächen |
333 |
|
|
9 Java-Oberflächen |
335 |
|
|
9.1 Mit AWT lernte Java fensterln |
336 |
|
|
9.1.1 Der Ast, an dem das Frame hängt |
338 |
|
|
9.1.2 Swing |
350 |
|
|
9.1.3 Jigloo, unser Werkzeug für Oberflächen |
352 |
|
|
9.1.4 Zwischen Feld und Label |
368 |
|
|
9.1.5 Das Ereignis-Modell |
375 |
|
|
9.1.6 Modifizierungen an Ereignissen |
379 |
|
|
9.2 Für Meldungen aller Art |
380 |
|
|
9.2.1 Frame im Frame und interne Dialoge |
386 |
|
|
9.2.2 Fashingskostüme für Oberflächen |
388 |
|
|
9.3 SWT das Standard Widget Toolkit |
390 |
|
|
9.4 Zusammenfassung |
394 |
|
|
9.5 Aufgaben zum Kapitel |
396 |
|
|
9.6 Webseiten zum Kapitel |
397 |
|
|
10 Ausnahmen und Threads |
399 |
|
|
10 Ausnahmen und Threads |
401 |
|
|
10.1 Wo Ausnahmen zur Regel werden |
401 |
|
|
10.2 Multithreading mit Java |
409 |
|
|
10.3 Dämonen, die »dunkle Seite« in Java? |
414 |
|
|
10.4 Instanz-Initialisatoren |
418 |
|
|
10.5 Zusammenfassung |
421 |
|
|
10.6 Aufgaben zum Kapitel |
422 |
|
|
10.7 Webseiten zum Kapitel |
423 |
|
|
11 Codekonventionen |
425 |
|
|
11 Codekonventionen |
427 |
|
|
11.1 Ordnung ist das halbe Leben |
427 |
|
|
11.1.1 Weshalb sind Codekonventionen unverzichtbar? |
427 |
|
|
11.1.2 Umsetzung der Codekonventionen |
429 |
|
|
11.2 Dateiaufbau |
429 |
|
|
11.2.1 Dateinamen |
429 |
|
|
11.2.2 Der Klassenname |
430 |
|
|
11.2.3 Dateiendungen |
431 |
|
|
11.3 Innerer Dateiaufbau |
432 |
|
|
11.3.1 Die Bestandteile einer Datei |
432 |
|
|
11.3.2 Der Dateikommentar |
433 |
|
|
11.3.3 Klassen- und Interfaces |
434 |
|
|
11.4 Einrücken |
435 |
|
|
11.5 Die Zeilenlänge |
435 |
|
|
11.6 Kommentare |
437 |
|
|
11.6.1 Quellcodekommentare |
437 |
|
|
11.7 Javadoc-Kommentare |
439 |
|
|
11.7.1 Methodenkommentar |
440 |
|
|
11.8 Deklarationen |
441 |
|
|
11.8.1 Eine Deklaration pro Zeile |
442 |
|
|
11.8.2 Position von Deklarationen |
443 |
|
|
11.9 Klassen- und Interface-Definitionen |
444 |
|
|
11.10 Anweisungen |
445 |
|
|
11.10.1 Einfache Anweisungen |
445 |
|
|
11.10.2 Blöcke oder gebündelte Anweisungen |
445 |
|
|
11.10.3 Die if-Weise, if-else-Anweisungen |
446 |
|
|
11.10.4 Die for-Schleife |
446 |
|
|
11.10.5 Die while-Schleife |
447 |
|
|
11.10.6 Die do-while-Schleife |
447 |
|
|
11.10.7 Die switch-Anweisung |
448 |
|
|
11.10.8 Die try-/catch-Anweisung |
448 |
|
|
11.10.9 Die return-Anweisung |
449 |
|
|
11.11 Leerräume |
449 |
|
|
11.11.1 Leerzeilen |
449 |
|
|
11.11.2 Leerzeichen |
450 |
|
|
11.12 Namenskonventionen |
451 |
|
|
11.12.1 Anwendungen |
452 |
|
|
11.12.2 Packages |
452 |
|
|
11.12.3 Klassenbibliothek |
452 |
|
|
11.13 Programmierpraktiken |
454 |
|
|
11.13.1 Zugriff auf Instanz- und Klassenvariablen |
454 |
|
|
11.13.2 Zugriff auf Klassenvariablen und -methoden |
454 |
|
|
11.13.3 Zuweisungen |
455 |
|
|
11.13.4 Instanziierung |
455 |
|
|
11.13.5 Rückgabewerte |
456 |
|
|
11.14 Zusammenfassung |
457 |
|
|
11.15 Aufgaben zum Kapitel |
458 |
|
|
11.16 Webseiten zum Kapitel |
459 |
|
|
12 Datenbanken in Eclipse |
463 |
|
|
12 Datenbanken in Eclipse |
465 |
|
|
12.1 Einstieg in das Thema |
465 |
|
|
12.2 Spielereien mit Access |
466 |
|
|
12.3 Die Einrichtung von DbEdit |
473 |
|
|
12.4 Allgemeine Betrachtungen zu Datenbanken |
475 |
|
|
12.4.1 Zugriffssysteme und Datenbankserver |
476 |
|
|
12.5 MySQL |
478 |
|
|
12.5.1 MySql installieren |
478 |
|
|
12.5.2 Die ersten Experimente mit einem Datenbankserver |
482 |
|
|
12.5.3 Datenbanken erzeugen |
484 |
|
|
12.6 Eclipse und MySQL |
485 |
|
|
12.7 Zusammenfassung |
488 |
|
|
12.8 Aufgaben zum Kapitel |
488 |
|
|
12.9 Webseiten zum Kapitel |
489 |
|
|
13 Datenbanken und Java |
491 |
|
|
13 Datenbanken und Java |
493 |
|
|
13.1 Java und die Datenbankanbindung |
493 |
|
|
13.1.1 Noch einmal JDBC |
495 |
|
|
13.2 Vom Treiber zur Verbindung |
496 |
|
|
13.3 Daten aus der Datenbank lesen |
498 |
|
|
13.4 Carlipso goes DB |
499 |
|
|
13.5 Daten in die Datenbank schreiben |
506 |
|
|
13.5.1 Die Reflection-API |
507 |
|
|
13.6 Zusammenfassung |
511 |
|
|
13.7 Aufgaben zum Kapitel |
512 |
|
|
13.8 Webseiten zum Kapitel |
513 |
|
|
Anhang |
515 |
|
|
A Tipps |
517 |
|
|
A. 1 Kommentare und andere Hilfen |
517 |
|
|
A.2 Mehr Übersicht schaffen |
518 |
|
|
A.2.1 Code minimieren |
518 |
|
|
A.2.2 Views entnehmen |
518 |
|
|
A.2.3 Editoren automatisch schließen |
518 |
|
|
B Literatur und Webseiten |
519 |
|
|
C Glossar |
523 |
|
|
Index |
531 |
|