Java ist das Fundament der modernen Softwarentwicklung und Grundlage unzähliger IT-Projekte. Michael Kofler führt Sie in die Programmiersprache ein und vermittelt alle Konzepte, die Sie für den Einstieg brauchen. Von einfachen Beispielen bis zum objektorientierten Programm finden Sie alles übersichtlich und auf den Punkt präsentiert.
Aktuell zu Java LTS 17.
Aus dem Inhalt:
- Sprachgrundlagen
- Installation von Java und IntelliJ IDEA
- Schleifen, Verzweigungen und Methoden
- Objektorientierung, Vererbungen und Schnittstellen
- Vererbung und Interfaces
- Exceptions (Fehlerbehandlung)
- Umgang mit Datum und Uhrzeit
- Zugriff auf Dateien
- Listen, Sets und Maps
- Lambda-Ausdrücke
- Generische Klassen und Methoden
- Einführung in GUIs mit JavaFX
Inhaltsverzeichnis
Vorwort . . . 21
1. Hello World! . . . 23
1. 1 . . . Einführung . . . 23
1. 2 . . . Java installieren . . . 24
1. 3 . . . IntelliJ IDEA . . . 27
1. 4 . . . Der Hello-World-Code . . . 33
1. 5 . . . Alternativen zu IntelliJ . . . 36
2. Java-Crashkurs . . . 38
2. 1 . . . Die Idee des objektorientierten Programmierens . . . 38
2. 2 . . . Java-Syntax . . . 43
2. 3 . . . Wiederholungsfragen . . . 48
3. Variablenverwaltung . . . 49
3. 1 . . . Variablen . . . 49
3. 2 . . . Elementare Datentypen . . . 53
3. 3 . . . Literale . . . 59
3. 4 . . . Variablen einlesen und ausgeben . . . 62
3. 5 . . . Variablen im größeren Java-Kontext . . . 65
3. 6 . . . Konstanten und Enums . . . 71
3. 7 . . . Wiederholungsfragen und Übungen . . . 73
4. Operatoren . . . 74
4. 1 . . . Überblick . . . 74
4. 2 . . . Details und Sonderfälle . . . 76
4. 3 . . . Wiederholungsfragen . . . 83
5. Verzweigungen und Schleifen . . . 84
5. 1 . . . »if«-Verzweigungen . . . 85
5. 2 . . . »if«-Kurzschreibweise (ternärer Operator) . . . 90
5. 3 . . . »switch«-Verzweigungen . . . 91
5. 4 . . . »for«-Schleifen . . . 94
5. 5 . . . »for-each«-Schleifen . . . 101
5. 6 . . . »while«- und »do-while»-Schleifen . . . 102
5. 7 . . . »break« und »continue« . . . 104
5. 8 . . . Wiederholungsfragen und Übungen . . . 106
6. Arrays . . . 108
6. 1 . . . Syntax . . . 108
6. 2 . . . Mit Arrays arbeiten . . . 114
6. 3 . . . Wiederholungsfragen . . . 118
7. Zeichenketten . . . 119
7. 1 . . . Der Datentyp »char« . . . 119
7. 2 . . . Die »String«-Klasse . . . 121
7. 3 . . . Formatierung und Konvertierung . . . 129
7. 4 . . . Die »StringBuilder«-Klasse . . . 135
7. 5 . . . Beispiele . . . 136
7. 6 . . . Wiederholungsfragen und Übungen . . . 139
8. Methoden . . . 140
8. 1 . . . Einführung . . . 141
8. 2 . . . Parameterliste . . . 144
8. 3 . . . Rückgabewert und »return« . . . 150
8. 4 . . . Rekursion . . . 152
8. 5 . . . Tipps zum richtigen Einsatz von Methoden . . . 154
8. 6 . . . Beispiele . . . 155
8. 7 . . . Wiederholungsfragen und Übungen . . . 164
9. Datum und Uhrzeit . . . 168
9. 1 . . . Datum und Zeit seit Java 8 . . . 169
9. 2 . . . Veraltete Datums- und Zeitklassen (Date, Calendar) . . . 178
9. 3 . . . Wiederholungsfragen und Übungen . . . 186
10. Exceptions . . . 187
10. 1 . . . Exception-Klassen . . . 188
10. 2 . . . try-catch . . . 190
10. 3 . . . Fehleranfällige Methoden deklarieren (»throws«) . . . 194
10. 4 . . . Selbst Exceptions auslösen (»throw«) . . . 195
10. 5 . . . Beispiel . . . 196
10. 6 . . . Wiederholungsfragen und Übungen . . . 199
11. Klassen und Records . . . 201
11. 1 . . . Eigene Klassen entwickeln . . . 202
11. 2 . . . Der Konstruktor . . . 212
11. 3 . . . »get«- und »set«-Methoden (Getter/Setter) . . . 217
11. 4 . . . Records . . . 220
11. 5 . . . UML-Diagramme . . . 224
11. 6 . . . Beispiel: Bücher und Kapitel . . . 225
11. 7 . . . Wiederholungsfragen und Übungen . . . 229
12. Listen, Sets und Maps . . . 232
12. 1 . . . Generische Klassen anwenden . . . 233
12. 2 . . . Listen . . . 236
12. 3 . . . Sets . . . 238
12. 4 . . . Maps . . . 241
12. 5 . . . Beispiel: Polygone . . . 243
12. 6 . . . Beispiel: Schachfigur Springer . . . 247
12. 7 . . . Beispiel: Mitarbeiter verwalten . . . 253
12. 8 . . . Wiederholungsfragen und Übungen . . . 257
13. Vererbung . . . 258
13. 1 . . . Vererbung . . . 258
13. 2 . . . Beispiel: Klassen für Fahrräder . . . 263
13. 3 . . . Finale und abstrakte Klassen . . . 266
13. 4 . . . Die »Object«-Klasse . . . 274
13. 5 . . . Beispiel: Schachfiguren . . . 279
13. 6 . . . Wiederholungsfragen und Übungen . . . 283
14. Schnittstellen . . . 286
14. 1 . . . »interface« und »implements« . . . 286
14. 2 . . . Beispiel: Geometrische Figuren . . . 291
14. 3 . . . Wiederholungsfragen und Übungen . . . 295
15. Geschachtelte und anonyme Klassen . . . 296
15. 1 . . . Geschachtelte Klassen . . . 297
15. 2 . . . Anonyme Klassen . . . 299
15. 3 . . . Statische geschachtelte Klassen . . . 305
16. Generische Klassen und Methoden . . . 307
16. 1 . . . Einführung . . . 307
16. 2 . . . Deklaration generischer Klassen und Schnittstellen . . . 309
16. 3 . . . Deklaration generischer Methoden . . . 311
16. 4 . . . Wildcards . . . 312
16. 5 . . . Wiederholungsfragen und Übungen . . . 317
17. Lambda-Ausdrücke . . . 318
17. 1 . . . Hello Lambda World! . . . 318
17. 2 . . . Lambda-Syntax . . . 320
17. 3 . . . Generische Lambda-Schnittstellen . . . 325
17. 4 . . . Funktionale Programmierung mit Streams . . . 328
17. 5 . . . Beispiel: Mitarbeiter sortieren und auswählen . . . 334
17. 6 . . . Wiederholungsfragen . . . 336
18. Dateien und Verzeichnisse . . . 338
18. 1 . . . Klassen- und Schnittstellenüberblick . . . 338
18. 2 . . . Dateien und Verzeichnisse ergründen . . . 340
18. 3 . . . Dateien und Verzeichnisse bearbeiten . . . 347
18. 4 . . . Textdateien lesen und schreiben . . . 350
18. 5 . . . Beispiel: Evaluierungsdaten auswerten . . . 353
18. 6 . . . Wiederholungsaufgaben und Übungen . . . 357
19. JavaFX . . . 359
19. 1 . . . Hello JavaFX! . . . 359
19. 2 . . . Arbeiten mit Steuerelementen . . . 364
19. 3 . . . Grafikprogrammierung . . . 372
19. 4 . . . Wiederholungsaufgaben und Übungen . . . 379
20. Java-Interna und -Bibliotheken . . . 380
20. 1 . . . Java-Compiler und -Interpreter . . . 381
20. 2 . . . Der »args«-Parameter . . . 386
20. 3 . . . Die Java-Shell . . . 389
20. 4 . . . import . . . 391
20. 5 . . . Pakete . . . 393
20. 6 . . . Bibliotheken . . . 395
20. 7 . . . Module (»Jigsaw«) . . . 400
20. 8 . . . Wiederholungsfragen . . . 403
A. Crashkurs IntelliJ IDEA . . . 404
A. 1 . . . Benutzeroberfläche . . . 404
A. 2 . . . Projekte . . . 410
A. 3 . . . Einstellungen . . . 411
B. Lösungen . . . 415
B. 1 . . . Kapitel 2, »Java-Crashkurs« . . . 415
B. 2 . . . Kapitel 3, »Variablenverwaltung« . . . 417
B. 3 . . . Kapitel 4, »Operatoren« . . . 419
B. 4 . . . Kapitel 5, »Verzweigungen und Schleifen« . . . 420
B. 5 . . . Kapitel 6, »Arrays« . . . 422
B. 6 . . . Kapitel 7, »Zeichenketten« . . . 423
B. 7 . . . Kapitel 8, »Methoden« . . . 425
B. 8 . . . Kapitel 9, »Datum und Uhrzeit« . . . 429
B. 9 . . . Kapitel 10, »Exceptions« . . . 429
B. 10 . . . Kapitel 11, »Klassen« . . . 432
B. 11 . . . Kapitel 12, »Listen, Sets und Maps« . . . 435
B. 12 . . . Kapitel 13, »Vererbung« . . . 439
B. 13 . . . Kapitel 14, »Schnittstellen« . . . 441
B. 14 . . . Kapitel 16, »Generische Klassen und Methoden« . . . 442
B. 15 . . . Kapitel 17, »Lambda-Ausdrücke« . . . 442
B. 16 . . . Kapitel 18, »Dateien und Verzeichnisse« . . . 445
B. 17 . . . Kapitel 19, »JavaFX« . . . 447
B. 18 . . . Kapitel 20, »Java-Interna und -Bibliotheken« . . . 449
Index . . . 453