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 . . . 18610. 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 . . . 19911. 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 . . . 22912. 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 . . . 25713. 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 . . . 28314. Schnittstellen . . . 286 14. 1 . . . »interface« und »implements« . . . 286 14. 2 . . . Beispiel: Geometrische Figuren . . . 291 14. 3 . . . Wiederholungsfragen und Übungen . . . 29515. Geschachtelte und anonyme Klassen . . . 296 15. 1 . . . Geschachtelte Klassen . . . 297 15. 2 . . . Anonyme Klassen . . . 299 15. 3 . . . Statische geschachtelte Klassen . . . 30516. 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 . . . 31717. 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 . . . 33618. 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 . . . 35719. JavaFX . . . 359 19. 1 . . . Hello JavaFX! . . . 359 19. 2 . . . Arbeiten mit Steuerelementen . . . 364 19. 3 . . . Grafikprogrammierung . . . 372 19. 4 . . . Wiederholungsaufgaben und Übungen . . . 37920. 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