Programmieren lernen mit Java - Aktuell zu Java 7
von: Hans-Peter Habelitz
Galileo Press, 2012
ISBN: 9783836217880
Sprache: Deutsch
513 Seiten, Download: 10888 KB
Format: PDF, auch als Online-Lesen
Liebe Leserin, lieber Leser, | 3 | ||
Auf einen Blick | 4 | ||
Inhalt | 6 | ||
Danksagung | 15 | ||
1 Einführung | 16 | ||
1.1 Was bedeutet Programmierung? | 17 | ||
1.1.1 Von den Anfängen bis heute | 17 | ||
1.1.2 Wozu überhaupt programmieren? | 18 | ||
1.1.3 Hilfsmittel für den Programmentwurf | 20 | ||
1.1.4 Von der Idee zum Programm | 22 | ||
1.1.5 Arten von Programmiersprachen | 26 | ||
1.2 Java | 32 | ||
1.2.1 Entstehungsgeschichte von Java | 32 | ||
1.2.2 Merkmale von Java | 33 | ||
1.2.3 Installation von Java | 36 | ||
1.3 Ein erstes Java-Programm | 40 | ||
1.3.1 Vorbereiten der Arbeitsumgebung | 41 | ||
1.3.2 Wie sind Java-Programme aufgebaut? | 42 | ||
1.3.3 Schritt für Schritt zum ersten Programm | 45 | ||
1.4 Übungsaufgaben | 53 | ||
1.5 Ausblick | 61 | ||
2 Grundbausteine eines Java-Programms | 62 | ||
2.1 Bezeichner und Schlüsselwörter | 62 | ||
2.2 Kommentare | 65 | ||
2.3 Variablen und Datentypen | 65 | ||
2.3.1 Namenskonventionen für Variablen | 67 | ||
2.3.2 Wertzuweisung | 68 | ||
2.3.3 Die primitiven Datentypen im Einzelnen | 69 | ||
2.3.4 Praxisbeispiel I zu Variablen | 71 | ||
2.3.5 Häufiger Fehler bei der Variablendeklaration | 75 | ||
2.3.6 Praxisbeispiel II zu Variablen | 76 | ||
2.3.7 Der Datentyp String | 82 | ||
2.3.8 Der Dialog mit dem Anwender | 83 | ||
2.3.9 Übungsaufgaben | 88 | ||
2.4 Operatoren und Ausdrücke | 90 | ||
2.4.1 Zuweisungsoperator und Cast-Operator | 90 | ||
2.4.2 Vergleiche und Bedingungen | 92 | ||
2.4.3 Arithmetische Operatoren | 93 | ||
2.4.4 Priorität | 96 | ||
2.4.5 Logische Operatoren | 98 | ||
2.4.6 Sonstige Operatoren | 100 | ||
2.5 Übungsaufgaben | 100 | ||
2.6 Ausblick | 103 | ||
3 Kontrollstrukturen | 104 | ||
3.1 Anweisungsfolge (Sequenz) | 104 | ||
3.2 Auswahlstrukturen (Selektionen) | 105 | ||
3.2.1 Zweiseitige Auswahlstruktur (if-Anweisung) | 106 | ||
3.2.2 Übungsaufgaben zur if-Anweisung | 113 | ||
3.2.3 Mehrseitige Auswahlstruktur (switch-case-Anweisung) | 115 | ||
3.2.4 Übungsaufgabe zur switch-case-Anweisung | 118 | ||
3.3 Wiederholungsstrukturen (Schleifen oder Iterationen) | 118 | ||
3.3.1 Die while-Schleife | 119 | ||
3.3.2 Die do-Schleife | 120 | ||
3.3.3 Die for-Schleife | 121 | ||
3.3.4 Sprunganweisungen | 122 | ||
3.3.5 Übungsaufgaben zu Schleifen | 123 | ||
3.4 Auswirkungen auf Variablen | 127 | ||
3.4.1 Gültigkeitsbereiche | 127 | ||
3.4.2 Namenskonflikte | 128 | ||
3.4.3 Lebensdauer | 128 | ||
3.5 Ausblick | 129 | ||
4 Einführung in Eclipse | 130 | ||
4.1 Die Entwicklungsumgebung Eclipse | 130 | ||
4.1.1 Installation von Eclipse | 131 | ||
4.1.2 Eclipse starten | 134 | ||
4.1.3 Ein bestehendes Projekt in Eclipse öffnen | 136 | ||
4.2 Erste Schritte mit Eclipse | 139 | ||
4.2.1 Ein neues Projekt erstellen | 139 | ||
4.2.2 Programm eingeben und starten | 141 | ||
4.3 Fehlersuche mit Eclipse | 149 | ||
4.3.1 Fehlersuche ohne Hilfsmittel | 150 | ||
4.3.2 Haltepunkte (Breakpoints) | 154 | ||
4.4 Ausblick | 160 | ||
5 Objektorientierung | 161 | ||
5.1 Struktur von Java-Programmen | 161 | ||
5.1.1 Klassen | 161 | ||
5.1.2 Attribute | 163 | ||
5.1.3 Packages | 163 | ||
5.2 Objekte | 168 | ||
5.2.1 Zugriff auf die Attribute (Datenelemente) | 171 | ||
5.2.2 Wertzuweisungen bei Objekten | 172 | ||
5.2.3 Gültigkeitsbereich und Lebensdauer | 175 | ||
6 Methoden | 177 | ||
6.1 Was sind Methoden | 177 | ||
6.1.1 Aufbau von Methoden | 177 | ||
6.1.2 Aufruf von Methoden | 178 | ||
6.1.3 Abgrenzung von Bezeichnern | 182 | ||
6.2 Werte übergeben | 183 | ||
6.2.1 Methoden mit Parameter | 184 | ||
6.2.2 Referenztypen als Parameter | 186 | ||
6.2.3 Überladen von Methoden | 187 | ||
6.3 Ergebnisse | 189 | ||
6.3.1 Methoden mit Ergebnisrückgabe | 189 | ||
6.3.2 Methoden ohne Ergebnisrückgabe | 192 | ||
6.4 Konstruktoren als spezielle Methoden | 192 | ||
6.4.1 Konstruktoren mit Parameter | 194 | ||
6.4.2 Verketten von Konstruktoren | 195 | ||
6.5 Übungsaufgaben | 197 | ||
6.6 Ausblick | 201 | ||
7 Mit Klassen und Objekten arbeiten | 203 | ||
7.1 Gemeinsame Nutzung | 203 | ||
7.1.1 Statische Attribute | 203 | ||
7.1.2 Statische Methoden | 205 | ||
7.2 Zugriffsmechanismen | 206 | ||
7.2.1 Unveränderliche Klassen | 206 | ||
7.2.2 Datenkapselung | 208 | ||
7.2.3 Getter- und Setter-Methoden | 209 | ||
7.3 Vererbung | 212 | ||
7.3.1 Schnittstelle und Implementierung | 216 | ||
7.3.2 Objekte vergleichen | 217 | ||
7.3.3 Abstrakte Klassen und Interfaces | 219 | ||
7.4 Übungsaufgaben | 220 | ||
7.5 Ausblick | 226 | ||
8 Grundlegende Klassen | 227 | ||
8.1 Die Klasse String | 227 | ||
8.1.1 Erzeugen von Strings | 227 | ||
8.1.2 Konkatenation von Strings | 228 | ||
8.1.3 Stringlänge bestimmen und Strings vergleichen | 231 | ||
8.1.4 Zeichen an einer bestimmten Position ermitteln | 233 | ||
8.1.5 Umwandlung in Groß- und Kleinbuchstaben | 233 | ||
8.1.6 Zahlen und Strings ineinander umwandeln | 233 | ||
8.2 Die Klasse StringBuffer | 236 | ||
8.2.1 Erzeugen eines Objekts der Klasse StringBuffer | 236 | ||
8.2.2 Mit StringBuffer arbeiten | 237 | ||
8.3 Wrapper-Klassen | 239 | ||
8.3.1 Erzeugen von Wrapper-Objekten | 240 | ||
8.3.2 Rückgabe der Werte | 241 | ||
8.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing | 243 | ||
8.4 Übungsaufgaben | 245 | ||
8.5 Ausblick | 247 | ||
9 Grafische Benutzeroberflächen | 248 | ||
9.1 Einführung | 248 | ||
9.1.1 JFC (Java Foundation Classes)/Swing | 248 | ||
9.1.2 Grafische Oberflächen mit Jigloo | 250 | ||
9.1.3 Erstes Beispielprogramm mit Programmfenster | 253 | ||
9.2 Grundlegende Klassen und Methoden | 262 | ||
9.2.1 JFrame, Dimension und Point | 262 | ||
9.2.2 Festlegen und Abfrage der Größe einer Komponente (in Pixel) | 263 | ||
9.2.3 Platzieren und Abfragen der Position einer Komponente | 263 | ||
9.2.4 Randelemente eines Fensters | 263 | ||
9.2.5 Veränderbarkeit der Größe eines Fensters | 264 | ||
9.2.6 Sichtbarkeit von Komponenten | 264 | ||
9.2.7 Löschen eines Fensters | 264 | ||
9.2.8 Festlegen der Reaktion auf das Schließen des Fensters | 265 | ||
9.2.9 Aussehen des Cursors festlegen | 265 | ||
9.2.10 Container eines Frames ermitteln | 266 | ||
9.2.11 Komponenten zu einem Container hinzufügen | 266 | ||
9.3 Programmfenster mit weiteren Komponenten | 266 | ||
9.3.1 Die Komponentenpalette | 267 | ||
9.3.2 Standardkomponenten in einen Frame einbauen | 268 | ||
9.3.3 Layout festlegen | 269 | ||
9.3.4 Erstes Programm mit Label, TextField und Button | 273 | ||
9.3.5 Label | 276 | ||
9.3.6 TextField | 276 | ||
9.3.7 Button | 277 | ||
9.3.8 Ereignisbehandlung in aller Kürze | 280 | ||
9.3.9 Programmierung der Umrechnung | 283 | ||
9.3.10 Werte aus einem TextField übernehmen | 284 | ||
9.3.11 Werte in ein TextField übertragen | 285 | ||
9.3.12 Zahlenausgabe mit Formatierung | 286 | ||
9.3.13 Maßnahmen zur Erhöhung des Bedienkomforts | 289 | ||
9.4 Übungsaufgaben | 296 | ||
9.5 Ausblick | 302 | ||
10 Fehlerbehandlung mit Exceptions | 303 | ||
10.1 Umgang mit Fehlern | 303 | ||
10.1.1 Fehlerbehandlung ohne Exceptions | 303 | ||
10.1.2 Exception als Reaktion auf Fehler | 304 | ||
10.2 Mit Exceptions umgehen | 306 | ||
10.2.1 Detailliertere Fehlermeldungen | 308 | ||
10.2.2 Klassenhierarchie der Exceptions | 310 | ||
10.3 Fortgeschrittene Ausnahmebehandlung | 311 | ||
10.3.1 Interne Abläufe beim Eintreffen einer Exception | 311 | ||
10.3.2 Benutzerdefinierte Exceptions | 314 | ||
10.3.3 Selbst definierte Exception-Klassen | 316 | ||
10.4 Übungsaufgaben | 317 | ||
10.5 Ausblick | 319 | ||
11 Containerklassen | 320 | ||
11.1 Array | 320 | ||
11.1.1 Array-Literale | 327 | ||
11.1.2 Mehrdimensionale Arrays | 327 | ||
11.1.3 Gezielter Zugriff auf Array-Elemente | 329 | ||
11.1.4 Hilfen für den Umgang mit Arrays | 332 | ||
11.1.5 Unflexible Array-Größe | 333 | ||
11.2 ArrayList und JList | 334 | ||
11.2.1 Die Klasse ArrayList | 334 | ||
11.2.2 Die grafische Komponente JList | 336 | ||
11.2.3 JList mit Scrollbalken ausstatten | 341 | ||
11.2.4 Umgang mit markierten Einträgen | 343 | ||
11.3 Übungsaufgaben | 345 | ||
11.4 Ausblick | 348 | ||
12 Dateien | 350 | ||
12.1 Die Klasse File | 350 | ||
12.1.1 Beispielanwendung mit der Klasse File | 352 | ||
12.1.2 Verzeichnisauswahl mit Dialog | 355 | ||
12.2 Ein- und Ausgaben aus der Sicht von Java | 358 | ||
12.2.1 Ein- und Ausgabeströme | 358 | ||
12.2.2 Byteorientierte Datenströme | 359 | ||
12.2.3 Zeichenorientierte Datenströme | 362 | ||
12.3 Das API nutzen | 365 | ||
12.3.1 Daten in Datei schreiben | 365 | ||
12.3.2 Daten aus einer Datei lesen | 369 | ||
12.3.3 Die Klasse FilterWriter | 371 | ||
12.3.4 Die Klasse FilterReader | 373 | ||
12.3.5 Textdatei verschlüsseln und entschlüsseln | 375 | ||
12.4 Beispielanwendungen | 378 | ||
12.4.1 Bilder in Labels und Buttons | 379 | ||
12.4.2 Ein einfacher Bildbetrachter | 383 | ||
12.4.3 Sounddatei abspielen | 391 | ||
12.5 Übungsaufgaben | 393 | ||
12.6 Ausblick | 396 | ||
13 Zeichnen | 397 | ||
13.1 In Komponenten zeichnen | 397 | ||
13.1.1 Grundlagen der Grafikausgabe | 397 | ||
13.1.2 Panel-Komponente mit verändertem Aussehen | 399 | ||
13.2 Zeichnen in Standardkomponenten | 404 | ||
13.2.1 JCheckbox, JRadioButton und ButtonGroup | 405 | ||
13.2.2 Auf eine Auswahl reagieren | 407 | ||
13.2.3 Auf das JPanel zeichnen | 409 | ||
13.2.4 Zeichnen mit dem Java 2D-API | 411 | ||
13.2.5 Eine lernfähige paint-Methode | 414 | ||
13.3 Farben verwenden | 421 | ||
13.3.1 Die Klasse Color | 421 | ||
13.3.2 Ein Farbauswahldialog für den Anwender | 424 | ||
13.4 Auswerten von Mausereignissen | 426 | ||
13.4.1 Listener zur Erfassung von Mausereignissen | 427 | ||
13.4.2 MouseEvent und MouseWheelEvent | 428 | ||
13.4.3 Mauskoordinaten anzeigen | 430 | ||
13.4.4 Die Maus als Zeichengerät | 432 | ||
13.4.5 Die Klasse Font | 435 | ||
13.5 Übungsaufgaben | 436 | ||
13.6 Ausblick | 438 | ||
14 Animationen und Threads | 439 | ||
14.1 Multitasking und Multithreading | 439 | ||
14.1.1 Was bedeutet Multitasking | 439 | ||
14.1.2 Was sind Threads? | 440 | ||
14.2 Zeitlich gesteuerte Abläufe programmieren | 441 | ||
14.2.1 Eine einfache Ampelsteuerung | 441 | ||
14.2.2 Ampelsteuerung mit Thread | 448 | ||
14.2.3 Gefahren bei der Nutzung von Threads | 454 | ||
14.2.4 Bewegungsabläufe programmieren (Synchronisation) | 455 | ||
14.3 Übungsaufgaben | 460 | ||
14.4 Ausblick | 463 | ||
15 Tabellen und Datenbanken | 464 | ||
15.1 Die Klasse JTable | 464 | ||
15.1.1 Tabelle mit konstanter Zellenzahl | 465 | ||
15.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl | 471 | ||
15.1.3 Tabelle mit unterschiedlichen Datentypen | 475 | ||
15.2 Datenbankzugriff | 480 | ||
15.2.1 Datenbankzugriff mit JDBC | 481 | ||
15.2.2 Aufbau der Datenbankverbindung | 482 | ||
15.2.3 Datenbankabfrage | 484 | ||
15.3 Übungsaufgaben | 490 | ||
Anhang A Inhalt der DVD | 493 | ||
Anhang B Ein Programm mit Eclipse als .jar-File speichern | 494 | ||
Anhang C Musterlösungen | 497 | ||
C.1 Musterlösungen zu den Aufgaben aus Abschnitt 2.2.9 | 497 | ||
C.2 Musterlösungen zu den Aufgaben aus Abschnitt 2.4 | 499 | ||
C.3 Musterlösungen zu den Aufgaben aus Abschnitt 3.3.5 | 503 | ||
Anhang D Quellen | 505 | ||
Anhang E Der Autor | 506 |