Book description
Java von Kopf bis Fuß - jetzt vollständig überarbeitet und aktualisiert - ist eine umfassende Erlebnistour durch die objektorientierte Programmierung und Java. Ganz nach modernen Lernprinzipien entworfen, führt Sie dieses Buch von den Grundlagen der Sprache zu fortgeschrittenen Themen wie Lambdas, Streams, Threads, Generics, Threading oder Networking. Und das Beste ist: Sie werden dabei lernen, wirklich wie erfahrene Entwickler:innen zu denken.
Auf Ihrem Weg dorthin werden Sie nicht nur lesen. Sie knacken Rätsel, spielen, lösen Krimis und kommen mit Java auf eine Weise zusammen, die Sie sich nicht hätten träumen lassen. Aber natürlich werden Sie auch Unmengen echten Java-Code schreiben.
Mithilfe zahlreicher Übungen, Puzzle, Interviews und Abbildungen lädt dieses Buch Ihnen das Wissen direkt ins Hirn. Wenn Sie sich gerne langweilen, besorgen Sie sich lieber ein anderes Buch. Aber wenn Sie wirklich Java lernen wollen, ist alles andere kalter Kaffee.
Table of contents
- Cover
- Titel
- Impressum
- Widmung
- Die Autoren
- Inhaltsverzeichnis
- i Einführung
- 1 Die Oberfläche durchbrechen
- 2 Die Reise nach Objectville
-
3 Verstehen Sie Ihre Variablen
- Eine Variable deklarieren
- »Einen doppelten Espresso bitte, ach nein, doch lieber einen int.«
- Finger weg von Schlüsselwörtern!
- Ein Dog-Objekt kontrollieren
- Eine Objektreferenz ist einfach ein anderer Variablenwert.
- Das Leben auf dem Garbage Collectible Heap
- Ein Array ist wie ein Schrank voller Tassen … ähm Becher
- Ein Dog-Beispiel
- Übungen
-
4 Wie sich Objekte verhalten
- Erinnern Sie sich: Eine Klasse beschreibt, was ein Objekt weiß und was es tut.
- Die Größe beeinflusst das Bellen
- Sie können einer Methode Informationen schicken
- Sie können von Methoden etwas zurückbekommen
- Sie können einer Methode mehr als eine Sache übergeben
- Parameter und Rückgabetypen
- Kapselung
- Wie verhalten sich Objekte in einem Array?
- Instanzvariablen deklarieren und initialisieren
- Variablen vergleichen (elementare und Referenztypen)
- Übungen
-
5 Methoden mit Superkräften
- Ein Spiel im Schiffe-versenken-Style: »Startups versenken«
- Eine Klasse entwickeln
- Die Methodenimplementierungen schreiben
- Den Testcode für die SimpleStartup-Klasse schreiben
- Die checkYourself()-Methode
- Vorcode für die SimpleStartupGame-Klasse
- Die main()-Methode des Spiels
- Dann spielen wir mal …
- Mehr über for-Schleifen
- Die verbesserte for-Schleife
- Elementare Typen casten
- Übungen
-
6 Die Java-Bibliothek verwenden
- Das vorige Kapitel endete mit einem Cliffhanger – nämlich einem Bug.
- Wachen Sie endlich auf und sehen Sie der Java-API ins Auge
- Einige Dinge, die Sie mit ArrayList tun können
- ArrayList mit einem regulären Array vergleichen
- Bauen wir das RICHTIGE Spiel: »Startups versenken«
- Vorcode für die echte StartupBust-Klasse
- Die finale Version der Startup-Klasse
- Boolesche Ausdrücke mit Superkräften
- Die Bibliothek (Java-API) verwenden
- Übungen
-
7 Besser leben in Objectville
- Stuhlkriege neu aufgelegt …
- Vererbung verstehen
- Entwerfen wir einen Vererbungsbaum für ein Tiersimulationsprogramm
- Weitere Vererbungsmöglichkeiten finden
- IST EIN und HAT EIN verwenden
- Woher wissen Sie, dass Ihre Vererbungshierarchie korrekt ist?
- Vererbung kann man gut gebrauchen, man kann sie aber auch missbrauchen!
- Den Vertrag einhalten: Regeln für das Überschreiben
- Eine Methode überladen
- Übungen
-
8 Ernsthafte Polymorphie
- Haben wir etwas vergessen, als wir das hier entworfen haben?
- Der Compiler verhindert die Instanziierung von abstrakten Klassen
- Abstrakt vs. konkret
- Abstrakte Methoden MÜSSEN implementiert werden
- Polymorphie in Aktion
- Was ist mit Nicht-Animals? Warum machen wir die Klasse nicht so allgemein, dass sie mit allem umgehen kann?
- Wenn ein Dog sich nicht wie ein Dog verhält
- Erforschen wir ein paar Entwurfsoptionen
- Das Pet-Interface erstellen und implementieren
- Die Superklassenversion einer Methode aufrufen
- Übungen
-
9 Leben und Sterben eines Objekts
- Der Stack und der Heap: wo das Leben spielt
- Methoden werden gestapelt
- Was ist mit lokalen Variablen, die Objekte sind?
- Das Wunder der Objekterstellung
- Ein Duck-Objekt konstruieren
- Erstellt der Compiler nicht immer einen argumentlosen Konstruktor für Sie?
- Kurzer Rückblick. Vier Dinge, die Sie sich zu Konstruktoren merken sollten!
- Die Rolle der Superklassenkonstruktoren im Leben eines Objekts
- Kann ein Kind vor seinen Eltern existieren?
- Was ist mit Referenzvariablen?
- Mir gefällt nicht, worauf das hinausläuft.
- Übungen
-
10 Zahlen, bitte!
- MATH-Methoden: Näher werden Sie einer globalen Methode nie wieder kommen
- Der Unterschied zwischen regulären (nicht statischen) und statischen Methoden
- Eine statische Variable initialisieren
- Math-Methoden
- Elementartypen verpacken
- Autoboxing funktioniert fast überall
- Und umgekehrt … eine elementare Zahl in einen String verwandeln
- Zahlenformatierung
- Der Format-Spezifizierer
- Übungen
-
11 Datenstrukturen
- Die java.util-API, List und Collections entdecken
- Generics sorgen für mehr Typsicherheit
- Erneut ein Blick auf die sort()-Methode
- Die neue, verbesserte Song-Klasse
- Mit Comparators sortieren
- Die Jukebox mit Lambdas aktualisieren
- Ein HashSet anstelle einer ArrayList verwenden
- Was Sie über TreeSet wissen MÜSSEN …
- Nachdem wir Lists und Sets gesehen haben, verwenden wir jetzt eine Map
- Endlich wieder zurück zu Generics
- Lösung zur Übung
-
12 Lambdas und Streams: Was – nicht wie!
- Sagen Sie dem Computer, WAS Sie wollen
- Wenn for-Schleifen schieflaufen
- Einführung in die Streams-API
- Ergebnisse von einem Stream erhalten
- Richtlinien für die Arbeit mit Streams
- Hallo Lambda, mein (nicht ganz so) alter Freund
- Erkennen Sie funktionale Interfaces
- Lous Herausforderung Nr. 1: Finde alle »Rock«-Songs
- Lous Herausforderung Nr. 2: Alle Genres auflisten
- Übungen
-
13 Riskantes Verhalten
- Bauen wir eine Musikmaschine
- Zuerst brauchen wir einen Sequencer
- Eine Exception ist ein Objekt … des Typs Exception
- Flusskontrolle in try/catch-Blöcken
- Eine Methode kann mehr als eine Exception werfen
- Mehrfache catch-Blöcke müssen von klein nach groß geordnet werden
- Ausweichen (durch Deklaration) verzögert nur das Unausweichliche
- Codeküche
- Version 1: Ihre allererste Soundplayer-App
- Version 2: Kommandozeilenargumente für das Experimentieren mit Sounds
- Übungen
-
14 Innen hui, außen GUI
- Alles beginnt mit einem Fenster
- Wie man an ein Benutzer-Event kommt
- Listener, Quellen und Events
- Machen Sie sich Ihr eigenes Grafik-Widget
- Spaß mit paintComponent()
- GUI-Layouts: mehrere Widgets in einen Frame packen
- Die Rettung: Innere Klassen!
- Rettung durch Lambdas!
- Innere Klassen für Animationen einsetzen
- Eine einfachere Möglichkeit, Messages und Events zu erstellen
- Übungen
- 15 Mehr Schwung mit Swing
-
16 Objekte (und Text) speichern
- Ein serialisiertes Objekt in eine Datei schreiben
- Soll eine Klasse serialisierbar sein, implementieren Sie Serializable
- Deserialisierung: ein Objekt wiederherstellen
- Version-ID: Ein großes Serialisierungsproblem
- Einen String in ein Textdatei schreiben
- Aus einer Textdatei lesen
- Quiz Card Player (Code grob skizziert)
- Path, Paths und Files (mit Verzeichnissen spielen)
- Endlich, ein genauer Blick auf finally
- Ein BeatBox-Pattern speichern
- Übungen
-
17 Eine Verbindung herstellen
- Verbinden, senden, empfangen
- Der DailyAdviceClient (»Tipp des Tages«)
- Ein einfaches Serverprogramm schreiben
- Java hat mehrere Threads, aber nur eine Thread-Klasse
- Die drei Zustände eines neuen Threads
- Einen Thread schlafen schicken
- Zwei (oder mehr!) Threads erzeugen und starten
- Feierabend am Thread-Pool
- Der neue und verbesserte SimpleChatClient
- Übungen
-
18 Nebenläufigkeitsprobleme behandeln
- Das Ryan-und-Monica-Problem, in Code ausgedrückt
- Das Schloss eines Objekts verwenden
- Das gefürchtete »Problem der verlorenen Aktualisierung«
- Die increment()-Methode atomar machen. Synchronisieren Sie sie!
- Blockade, eine tödliche Seite der Synchronisierung
- »Vergleichen und tauschen« mit atomaren Variablen
- Immutable Objekte verwenden
- Mehr Probleme mit geteilten Daten
- Verwenden Sie eine threadsichere Datenstruktur
- Übungen
- A Anhang A
- B Anhang B
- Fußnoten
- i Index
Product information
- Title: Java von Kopf bis Fuß, 3rd Edition
- Author(s):
- Release date: January 2023
- Publisher(s): dpunkt
- ISBN: 9783960092063
You might also like
book
Java für Kids - Programmieren lernen ohne Vorkenntnisse, 8. A.
Einfacher Einstieg in die Java-Programmierung mit vielen Profi-Tipps Zahlreiche kleine Spiele programmieren lernen mit Schritt-für-Schritt-Anleitungen Mit …
book
Java – die Neuerungen in Version 9 bis 14
Dieses Buch richtet sich an Leser, die bereits solides Java-Know-how besitzen und sich prägnant über die …
book
Entwurfsmuster von Kopf bis Fuß, 2nd Edition
Dieses Buch ist ein moderner Klassiker zum Thema Entwurfsmuster. Mit dem einzigartigen Von-Kopf-bis-Fuß-Lernkonzept gelingt es den …
book
Java – die Neuerungen in Version 17 LTS, 18 und 19
Dieses Buch richtet sich an alle, die bereits ein solides Java-Know-how besitzen und sich prägnant über …