Programmieren lernen mit Java - Aktuell zu Java 8 - Keine Vorkenntnisse erforderlich
von: Hans-Peter Habelitz
Galileo Press, 2014
ISBN: 9783836228626
Sprache: Deutsch
528 Seiten, Download: 11520 KB
Format: PDF, auch als Online-Lesen
Mehr zum Inhalt
Programmieren lernen mit Java - Aktuell zu Java 8 - Keine Vorkenntnisse erforderlich
Liebe Leserin, lieber Leser, | 3 | ||
Auf einen Blick | 4 | ||
Inhalt | 6 | ||
Danksagung | 15 | ||
Kapitel 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 | ||
Maschinennähe | 26 | ||
Anwendungsbereich | 30 | ||
Programmiermodell | 31 | ||
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. Schritt: Den Quellcode erstellen | 45 | ||
2. Schritt: Den Quellcode in Bytecode übersetzen | 47 | ||
3. Schritt: Den Bytecode an den Java-Interpreter zur Ausführung übergeben | 52 | ||
1.4 Übungsaufgaben | 53 | ||
Aufgabe 1 | 53 | ||
Aufgabe 2 | 54 | ||
Aufgabe 3 | 55 | ||
Aufgabe 4 | 56 | ||
Aufgabe 5 | 57 | ||
Aufgabe 6 | 59 | ||
1.5 Ausblick | 60 | ||
Kapitel 2 Grundbausteine eines Java-Programms | 62 | ||
2.1 Bezeichner und Schlüsselwörter | 62 | ||
2.2 Kommentare | 64 | ||
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 | ||
»boolean« | 69 | ||
»char« | 69 | ||
»byte«, »short«, »int« und »long« | 70 | ||
»float« und »double« | 70 | ||
2.3.4 Praxisbeispiel 1 zu Variablen | 71 | ||
2.3.5 Häufiger Fehler bei der Variablendeklaration | 75 | ||
2.3.6 Praxisbeispiel 2 zu Variablen | 76 | ||
2.3.7 Der Datentyp »String« | 82 | ||
2.3.8 Der Dialog mit dem Anwender | 83 | ||
2.3.9 Übungsaufgaben | 87 | ||
Aufgabe 1 | 87 | ||
Aufgabe 2 | 88 | ||
2.4 Operatoren und Ausdrücke | 89 | ||
2.4.1 Zuweisungsoperator und Cast-Operator | 89 | ||
2.4.2 Vergleiche und Bedingungen | 91 | ||
2.4.3 Arithmetische Operatoren | 93 | ||
2.4.4 Priorität | 95 | ||
2.4.5 Logische Operatoren | 97 | ||
2.4.6 Sonstige Operatoren | 98 | ||
2.5 Übungsaufgaben | 99 | ||
Aufgabe 1 | 99 | ||
Aufgabe 2 | 100 | ||
Aufgabe 3 | 100 | ||
Aufgabe 4 | 100 | ||
Aufgabe 5 | 101 | ||
2.6 Ausblick | 102 | ||
Kapitel 3 Kontrollstrukturen | 104 | ||
3.1 Anweisungsfolge (Sequenz) | 104 | ||
3.2 Auswahlstrukturen (Selektionen) | 105 | ||
3.2.1 Zweiseitige Auswahlstruktur (»if«-Anweisung) | 106 | ||
Einfache if-Anweisungen | 107 | ||
Verschachtelte »if«-Anweisungen | 110 | ||
3.2.2 Übungsaufgaben zur »if«-Anweisung Aufgabe 1 | 113 | ||
Aufgabe 2 | 113 | ||
Aufgabe 3 | 114 | ||
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 Aufgabe 1 | 123 | ||
Aufgabe 2 | 123 | ||
Aufgabe 3 | 124 | ||
Aufgabe 4 | 124 | ||
Aufgabe 5 | 124 | ||
Aufgabe 6 | 125 | ||
Aufgabe 7 | 125 | ||
Aufgabe 8 | 126 | ||
3.4 Auswirkungen auf Variablen | 126 | ||
3.4.1 Gültigkeitsbereiche | 127 | ||
3.4.2 Namenskonflikte | 128 | ||
3.4.3 Lebensdauer | 128 | ||
3.5 Ausblick | 129 | ||
Kapitel 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 | 135 | ||
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 | 159 | ||
Kapitel 5 Klassen und Objekte | 160 | ||
5.1 Struktur von Java-Programmen | 160 | ||
5.1.1 Klassen | 160 | ||
5.1.2 Attribute | 162 | ||
5.1.3 Packages | 162 | ||
5.2 Objekte | 167 | ||
5.2.1 Zugriff auf die Attribute (Datenelemente) | 169 | ||
5.2.2 Wertzuweisungen bei Objekten | 171 | ||
5.2.3 Gültigkeitsbereich und Lebensdauer | 174 | ||
5.3 Methoden | 175 | ||
5.3.1 Aufbau von Methoden | 175 | ||
5.3.2 Aufruf von Methoden | 176 | ||
5.3.3 Abgrenzung von Bezeichnern | 180 | ||
5.4 Werte übergeben | 181 | ||
5.4.1 Methoden mit Parameter | 181 | ||
5.4.2 Referenztypen als Parameter | 183 | ||
5.4.3 Überladen von Methoden | 185 | ||
5.5 Ergebnisse | 186 | ||
5.5.1 Methoden mit Ergebnisrückgabe | 187 | ||
5.5.2 Methoden ohne Ergebnisrückgabe | 189 | ||
5.6 Konstruktoren als spezielle Methoden | 189 | ||
5.6.1 Konstruktoren mit Parametern | 191 | ||
5.6.2 Verketten von Konstruktoren | 192 | ||
5.7 Übungsaufgaben | 194 | ||
Aufgabe 1 | 194 | ||
Aufgabe 2 | 194 | ||
Aufgabe 3 | 195 | ||
Aufgabe 4 | 195 | ||
Aufgabe 5 | 196 | ||
Aufgabe 6 | 196 | ||
Aufgabe 7 | 197 | ||
5.8 Ausblick | 197 | ||
Kapitel 6 Mit Klassen und Objekten arbeiten | 200 | ||
6.1 Gemeinsame Nutzung | 200 | ||
6.1.1 Statische Attribute | 200 | ||
6.1.2 Statische Methoden | 202 | ||
6.2 Zugriffsmechanismen | 203 | ||
6.2.1 Unveränderliche Attribute | 203 | ||
6.2.2 Datenkapselung | 205 | ||
6.2.3 Getter- und Setter-Methoden | 206 | ||
6.3 Beziehungen zwischen Klassen | 208 | ||
6.3.1 Teil-Ganzes-Beziehung | 209 | ||
6.3.2 Delegation | 210 | ||
6.3.3 Abstammung | 210 | ||
6.4 Vererbung | 211 | ||
6.4.1 Schnittstelle und Implementierung | 216 | ||
6.4.2 Objekte vergleichen | 217 | ||
6.4.3 Abstrakte Klassen und Interfaces | 219 | ||
6.5 Übungsaufgaben | 220 | ||
Aufgabe 1 | 220 | ||
Aufgabe 2 | 221 | ||
Aufgabe 3 | 222 | ||
Aufgabe 4 | 225 | ||
Aufgabe 5 | 225 | ||
6.6 Ausblick | 227 | ||
Kapitel 7 Grundlegende Klassen | 228 | ||
7.1 Die Klasse »String« | 228 | ||
7.1.1 Erzeugen von Strings | 228 | ||
7.1.2 Konkatenation von Strings | 229 | ||
7.1.3 Stringlänge bestimmen und Strings vergleichen | 232 | ||
7.1.4 Zeichen an einer bestimmten Position ermitteln | 234 | ||
7.1.5 Umwandlung in Groß- und Kleinbuchstaben | 234 | ||
7.1.6 Zahlen und Strings ineinander umwandeln | 235 | ||
7.2 Die Klassen »StringBuffer« und »StringBuilder« | 237 | ||
7.2.1 Erzeugen eines Objekts der Klasse »StringBuilder« | 238 | ||
7.2.2 Mit »StringBuilder« arbeiten | 239 | ||
7.3 Wrapper-Klassen | 240 | ||
7.3.1 Erzeugen von Wrapper-Objekten | 241 | ||
7.3.2 Rückgabe der Werte | 242 | ||
7.3.3 Vereinfachter Umgang mit Wrapper-Klassen durch Autoboxing | 244 | ||
7.4 Date & Time API | 246 | ||
7.4.1 Technische Zeitangaben | 247 | ||
Die Klasse »Instant« | 248 | ||
Die Klasse »Duration« | 251 | ||
7.4.2 Datum und Uhrzeit | 254 | ||
Die Klasse »LocalDate« | 255 | ||
Die Klasse »YearMonth« | 256 | ||
Die Klasse »MonthDay« | 257 | ||
Die Klasse »Year« | 257 | ||
Die Klasse »LocalTime« | 257 | ||
Die Klasse »LocalDateTime« | 259 | ||
7.5 Übungsaufgaben | 259 | ||
Aufgabe 1 | 259 | ||
Aufgabe 2 | 259 | ||
Aufgabe 3 | 260 | ||
Aufgabe 4 | 260 | ||
Aufgabe 5 | 260 | ||
Aufgabe 6 | 260 | ||
Aufgabe 7 | 261 | ||
Aufgabe 8 | 261 | ||
Aufgabe 9 | 261 | ||
7.6 Ausblick | 261 | ||
Kapitel 8 Grafische Benutzeroberflächen | 264 | ||
8.1 Einführung | 264 | ||
8.1.1 JFC und Swing | 264 | ||
8.1.2 Grafische Oberflächen mit Jigloo | 266 | ||
Variante 1 | 266 | ||
Variante 2 | 268 | ||
8.1.3 Erstes Beispielprogramm mit Programmfenster | 269 | ||
8.2 Grundlegende Klassen und Methoden | 277 | ||
8.2.1 »JFrame«, »Dimension« und »Point« | 278 | ||
8.2.2 Festlegen und Abfrage der Größe einer Komponente (in Pixel) | 278 | ||
8.2.3 Platzieren und Abfragen der Position einer Komponente | 279 | ||
8.2.4 Randelemente eines Fensters | 279 | ||
8.2.5 Veränderbarkeit der Größe eines Fensters | 279 | ||
8.2.6 Sichtbarkeit von Komponenten | 280 | ||
8.2.7 Löschen eines Fensters | 280 | ||
8.2.8 Die Reaktion auf das Schließen des Fensters festlegen | 280 | ||
8.2.9 Das Aussehen des Cursors festlegen | 281 | ||
8.2.10 Container eines Frames ermitteln | 281 | ||
8.2.11 Komponenten zu einem Container hinzufügen | 282 | ||
8.3 Programmfenster mit weiteren Komponenten | 282 | ||
8.3.1 Die Komponentenpalette | 282 | ||
8.3.2 Standardkomponenten in einen Frame einbauen | 283 | ||
8.3.3 Layout festlegen | 285 | ||
8.3.4 Erstes Programm mit Label, TextField und Button | 289 | ||
Label | 291 | ||
TextField | 292 | ||
Button | 293 | ||
8.3.5 Ereignisbehandlung in aller Kürze | 295 | ||
8.3.6 Programmierung der Umrechnung | 298 | ||
8.3.7 Werte aus einem TextField übernehmen | 299 | ||
8.3.8 Werte in ein TextField übertragen | 300 | ||
8.3.9 Zahlenausgabe mit Formatierung | 301 | ||
8.3.10 Maßnahmen zur Erhöhung des Bedienkomforts | 304 | ||
8.4 Übungsaufgaben | 311 | ||
Aufgabe 1 | 311 | ||
Aufgabe 2 | 311 | ||
Aufgabe 3 | 312 | ||
Aufgabe 4 | 313 | ||
Aufgabe 5 | 313 | ||
Aufgabe 6 | 315 | ||
8.5 Ausblick | 316 | ||
Kapitel 9 Fehlerbehandlung mit Exceptions | 318 | ||
9.1 Umgang mit Fehlern | 318 | ||
9.1.1 Fehlerbehandlung ohne Exceptions | 318 | ||
9.1.2 Exception als Reaktion auf Fehler | 319 | ||
9.2 Mit Exceptions umgehen | 321 | ||
9.2.1 Detailliertere Fehlermeldungen | 323 | ||
9.2.2 Klassenhierarchie der Exceptions | 325 | ||
9.3 Fortgeschrittene Ausnahmebehandlung | 326 | ||
9.3.1 Interne Abläufe beim Eintreffen einer Exception | 326 | ||
9.3.2 Benutzerdefinierte Exceptions | 328 | ||
9.3.3 Selbst definierte Exception-Klassen | 330 | ||
9.4 Übungsaufgaben | 332 | ||
Aufgabe 1 | 332 | ||
Aufgabe 2 | 332 | ||
Aufgabe 3 | 333 | ||
Aufgabe 4 | 333 | ||
9.5 Ausblick | 333 | ||
Kapitel 10 Containerklassen | 334 | ||
10.1 Array | 334 | ||
10.1.1 Array-Literale | 341 | ||
10.1.2 Mehrdimensionale Arrays | 341 | ||
10.1.3 Gezielter Zugriff auf Array-Elemente | 342 | ||
10.1.4 Hilfen für den Umgang mit Arrays | 346 | ||
10.1.5 Unflexible Array-Größe | 347 | ||
10.2 »ArrayList« und »JList« | 347 | ||
10.2.1 Die Klasse »ArrayList« | 348 | ||
10.2.2 Die grafische Komponente »JList« | 350 | ||
10.2.3 JList mit Scrollbalken ausstatten | 354 | ||
10.2.4 Umgang mit markierten Einträgen | 356 | ||
10.3 Übungsaufgaben | 358 | ||
Aufgabe 1 | 358 | ||
Aufgabe 2 | 358 | ||
Aufgabe 3 | 359 | ||
Aufgabe 4 | 359 | ||
Aufgabe 5 | 360 | ||
Aufgabe 6 | 360 | ||
Aufgabe 7 | 361 | ||
10.4 Ausblick | 362 | ||
Kapitel 11 Dateien | 364 | ||
11.1 Die Klasse »File« | 364 | ||
11.1.1 Beispielanwendung mit der Klasse »File« | 366 | ||
11.1.2 Verzeichnisauswahl mit Dialog | 368 | ||
11.2 Ein- und Ausgaben in Java | 371 | ||
11.2.1 Ein- und Ausgabeströme | 372 | ||
11.2.2 Byteorientierte Datenströme | 373 | ||
11.2.3 Zeichenorientierte Datenströme | 376 | ||
11.3 Das API nutzen | 379 | ||
11.3.1 Daten in eine Datei schreiben | 379 | ||
11.3.2 Daten aus einer Datei lesen | 382 | ||
11.3.3 Die Klasse »FilterWriter« | 384 | ||
11.3.4 Die Klasse »FilterReader« | 386 | ||
11.3.5 Textdatei verschlüsseln und entschlüsseln | 389 | ||
11.4 Beispielanwendungen | 392 | ||
11.4.1 Bilder in Labels und Buttons | 392 | ||
11.4.2 Ein einfacher Bildbetrachter | 397 | ||
11.4.3 Sounddatei abspielen | 404 | ||
11.5 Übungsaufgaben | 406 | ||
Aufgabe 1 | 406 | ||
Aufgabe 2 | 407 | ||
Aufgabe 3 | 407 | ||
Aufgabe 4 | 408 | ||
11.6 Ausblick | 408 | ||
Kapitel 12 Zeichnen | 410 | ||
12.1 In Komponenten zeichnen | 410 | ||
12.1.1 Grundlagen der Grafikausgabe | 410 | ||
12.1.2 Panel-Komponente mit verändertem Aussehen | 412 | ||
12.1.3 Zeichnen in Standardkomponenten | 417 | ||
»JCheckBox«, »JRadioButton« und »ButtonGroup« | 418 | ||
Auf eine Auswahl reagieren | 420 | ||
Auf das JPanel zeichnen | 421 | ||
Zeichnen mit dem Java 2D-API | 424 | ||
Eine lernfähige »paint«-Methode | 426 | ||
12.2 Farben verwenden | 436 | ||
12.2.1 Die Klasse »Color« | 436 | ||
12.2.2 Ein Farbauswahldialog für den Anwender | 438 | ||
12.3 Auswerten von Mausereignissen | 440 | ||
12.3.1 Listener zur Erfassung von Mausereignissen | 441 | ||
12.3.2 »MouseEvent« und »MouseWheelEvent« | 442 | ||
12.3.3 Mauskoordinaten anzeigen | 444 | ||
12.3.4 Die Maus als Zeichengerät | 446 | ||
12.3.5 Die Klasse »Font« | 449 | ||
12.4 Übungsaufgaben | 450 | ||
Aufgabe 1 | 450 | ||
Aufgabe 2 | 450 | ||
Aufgabe 3 | 451 | ||
Aufgabe 4 | 452 | ||
Aufgabe 5 | 452 | ||
12.5 Ausblick | 453 | ||
Kapitel 13 Animationen und Threads | 454 | ||
13.1 Multitasking und Multithreading | 454 | ||
13.1.1 Was bedeutet Multitasking? | 455 | ||
13.1.2 Was sind Threads? | 455 | ||
13.2 Zeitlich gesteuerte Abläufe programmieren | 456 | ||
13.2.1 Eine einfache Ampelsteuerung | 456 | ||
13.2.2 Ampelsteuerung mit Thread | 463 | ||
13.2.3 Gefahren bei der Nutzung von Threads | 469 | ||
13.2.4 Bewegungsabläufe programmieren (Synchronisation) | 470 | ||
13.3 Übungsaufgaben | 474 | ||
Aufgabe 1 | 474 | ||
Aufgabe 2 | 474 | ||
Aufgabe 3 | 475 | ||
Aufgabe 4 | 475 | ||
Aufgabe 5 | 476 | ||
Aufgabe 6 | 476 | ||
13.4 Ausblick | 477 | ||
Kapitel 14 Tabellen und Datenbanken | 478 | ||
14.1 Die Klasse »JTable« | 478 | ||
14.1.1 Tabelle mit konstanter Zellenzahl | 479 | ||
14.1.2 Tabelle mit variabler Zeilen- und Spaltenzahl | 485 | ||
14.1.3 Tabelle mit unterschiedlichen Datentypen | 489 | ||
14.2 Datenbankzugriff | 494 | ||
14.2.1 Datenbankzugriff mit JDBC | 494 | ||
14.2.2 Aufbau der Datenbankverbindung | 495 | ||
14.2.3 Datenbankabfrage | 498 | ||
14.3 Übungsaufgaben | 504 | ||
Aufgabe 1 | 504 | ||
Aufgabe 2 | 505 | ||
Aufgabe 3 | 505 | ||
14.4 Ausblick | 506 | ||
Inhalt der DVD | 508 | ||
Arbeitsumgebung | 508 | ||
Eclipse | 508 | ||
JAR Files | 508 | ||
Java JDK | 508 | ||
Jigloo | 508 | ||
Quellcodes | 508 | ||
Java ist auch eine Insel | 508 | ||
Ein Programm mit Eclipse als ».jar«-File speichern | 510 | ||
Musterlösungen | 514 | ||
C.1 Musterlösungen zu den Aufgaben aus Abschnitt 2.3.9 | 514 | ||
Musterlösung zu Aufgabe 1 | 514 | ||
Musterlösung zu Aufgabe 2 | 515 | ||
C.2 Musterlösungen zu den Aufgaben aus Abschnitt 2.5 | 516 | ||
Musterlösung zu Aufgabe 1 | 516 | ||
Musterlösung zu Aufgabe 2 | 517 | ||
Musterlösung zu Aufgabe 3 | 517 | ||
Musterlösung zu Aufgabe 4 | 518 | ||
Musterlösung zu Aufgabe 5 | 519 | ||
C.3 Musterlösungen zu den Aufgaben aus Abschnitt 3.3.5 | 519 | ||
Musterlösung zu Aufgabe 3 | 519 | ||
Musterlösung zu Aufgabe 4 | 520 | ||
Musterlösung zu Aufgabe 7a) | 520 | ||
Musterlösung zu Aufgabe 8a) | 521 | ||
Quellen | 522 | ||
Index | 524 |