Book description
- Trainieren Sie Ihre Java-Kenntnisse
- Learning by Doing anhand praktischer Übungen
- Mit vollständigen und kommentierten Lösungen
Dieses Buch ist kein Lehrbuch, sondern ein reines Übungsbuch und wendet sich an Leser, die ihre Java-Kenntnisse anhand zahlreicher praktischer Übungen durch Learning by Doing vertiefen und festigen möchten. Es ist ideal, um sich auf Prüfungen vorzubereiten oder das Programmieren mit Java praktisch zu üben.
Jedes Kapitel enthält zunächst eine kompakte Zusammenfassung des Stoffes, der in den Übungsaufgaben dieses Kapitels verwendet wird. Anschließend haben Sie die Möglichkeit, zwischen Aufgaben in drei verschiedenen Schwierigkeitsstufen – von einfach bis anspruchsvoll – zu wählen. Anhand dieser Aufgaben können Sie Ihr Wissen praktisch testen. Am Ende des Kapitels finden Sie vollständige und kommentierte Musterlösungen.
- Es werden folgende Themen abgedeckt:
Die Kapitel 1 bis 3 enthalten Aufgaben zur objektorientierten Programmierung mit Java, in den Kapiteln 4 bis 6 üben Sie die Java-GUI-Programmierung mit AWT und Swing, die Kapitel 7 bis 9 beschäftigen sich mit inneren Klassen, Generics, Reflection und Exceptions. Die wichtigsten Änderungen der Java-Versionen 6 und 7 werden in den Kapiteln 10 und 11 behandelt.
Kapitel 12 behandelt die neuen Sprachmittel von Java 8: Lambdas und Streams. Sie lernen, wie die neue funktionale Sicht Ihnen helfen kann, eine kompaktere Syntax beim Programmieren zu verwenden und einen weniger fehleranfälligen Code für parallele Abläufe zu erstellen.
Nach dem Durcharbeiten des Buches verfügen Sie über fundierte Programmierkenntnisse und einen umfangreichen Fundus an Beispielcode.
- Aus dem Inhalt:
- Klassendefinition und Objektinstantiierung
- Java-Standard-Klassen
- Abgeleitete Klassen und Vererbung
- Abstrakte Klassen und Interfaces
- Graphische Programmierung mit AWT und Swing
- Die MVC (Model View Controller)-Architektur von Swing-Komponenten
- Innere Klassen
- Generics
- Reflection
- Typprüfung und Typsicherheit in Java
- Lambdas: Gegenüberstellung zu anonymen Klassen, Syntax und Semantik, Behandlung von Exceptions, Scoping und Variable Capture
- Methoden- und Konstruktor-Referenzen
- Funktionale Interfaces
- Default- und static-Methoden für Interfaces
- Definition und Nutzung von Streams
- Reduktion und Kollektoren
- Parallele Streams
- Die neuen Methoden der Klasse ConcurrentHashMap
Table of contents
- Cover
- Titel
- Impressum
- Inhaltsverzeichnis (1/5)
- Inhaltsverzeichnis (2/5)
- Inhaltsverzeichnis (3/5)
- Inhaltsverzeichnis (4/5)
- Inhaltsverzeichnis (5/5)
- Einleitung (1/2)
- Einleitung (2/2)
-
Kapitel 1: Klassendefinition und Objektinstantiierung
- 1.1 Klassen und Objekte
- 1.2 Die Member einer Klasse: Felder und Methoden
- 1.3 Das Überladen von Methoden
- 1.4 Die Datenkapselung, ein Prinzip der objektorientierten Programmierung
- 1.5 Das »aktuelle Objekt« und die »this-Referenz«
- 1.6 Die Wert- und Referenzübergabe in Methodenaufrufen
- 1.7 Globale und lokale Referenzen
- 1.8 Selbstreferenzierende Klassen und Felder (»self-referential classes and fields«)
- 1.9 Java-Pakete
- 1.10 Die Modifikatoren für Felder und Methoden in Zusammenhang mit der Definition von Paketen
- 1.11 Standard-Klassen von Java
- 1.12 Die Wrapper-Klassen von Java und das Auto(un)boxing
- 1.13 Arrays (Reihungen) und die Klassen Array und Arrays
- 1.14 Zeichenketten und die Klasse String
- 1.15 Mit der Version 5.0 eingeführte Spracherneuerungen für Arrays und Methoden
- 1.16 Das Initialisieren von Klassen- und Instanzfeldern
- 1.17 Private Konstruktoren
-
1.18 Lösungen
- Lösung 1.1
- Lösung 1.2
- Lösung 1.3
- Lösung 1.4
- Lösung 1.5
- Lösung 1.6
- Lösung 1.7
- Lösung 1.8
- Lösung 1.9
- Lösung 1.10
- Lösung 1.11
- Lösung 1.12
- Lösung 1.13
- Lösung 1.14
- Lösung 1.15
- Lösung 1.16
- Lösung 1.17
- Lösung 1.18
- Lösung 1.19
- Lösung 1.20
- Lösung 1.21
- Lösung 1.22
- Lösung 1.23
- Lösung 1.24
- Lösung 1.25
- Lösung 1.26
-
Kapitel 2: Abgeleitete Klassen und Vererbung
- 2.1 Abgeleitete Klassen
- 2.2 Die Konstruktoren von abgeleiteten Klassen
- 2.3 Abgeleitete Klassen und die Sichtbarkeit von Feldern und Methoden
- 2.4 Das Verdecken von Klassenmethoden und das statische Binden von Methoden
- 2.5 Das Überschreiben von Instanzmethoden und das dynamische Binden von Methoden
- 2.6 Vererbung und Komposition
- 2.7 Kovariante Rückgabetypen in Methoden
- 2.8 Verdeckte Felder
- 2.9 Vergrößernde und verkleinernde Konvertierung (»up- und down-casting«)
- 2.10 Der Polymorphismus, ein Prinzip der objektorientierten Programmierung
- 2.11 Lösungen
-
Kapitel 3: Abstrakte Klassen und Interfaces
- 3.1 Abstrakte Klassen
- 3.2 Abstrakte Java-Standard-Klassen und eigene Definitionen von abstrakten Klassen
- 3.3 Die Referenzen vom Typ einer abstrakten Klassen
- 3.4 Interfaces (Schnittstellen)
- 3.5 Die Entscheidung zwischen abstrakten Klassen und Interfaces
- 3.6 Oberinterfaces
- 3.7 Implementieren von mehreren Interfaces für eine Klasse
- 3.8 Die Vererbung an Beispielen von Java-Standard-Klassen und Standard-Interfaces
- 3.9 Das Klonen von Objekten
- 3.10 Die Gleichheit von Objekten
- 3.11 Das oberflächliche und das tiefe Klonen (»shallow und deep cloning«)
- 3.12 Der Garbage Collector und das Beseitigen von Objekten
- 3.13 Lösungen
-
Kapitel 4: Einführung in die graphische Programmierung
- 4.1 Das AWT (Abstract Windowing Toolkit) und Swing
- 4.2 Fenster unter graphischen Oberflächen
- 4.3 Die Klassen Graphics und Graphics2D
-
4.4 Methoden zum Zeichnen
- Eine einfache AWT-Komponente vom Typ Frame
- Eine Einfache Swing-Komponente vom Typ JFrame
- Ein JWindow-Fenster
- Ein JDialog-Fenster
- Das Neuzeichnen einer Swing-Komponente ohne Benutzung des Clip-Rectangles
- Das Neuzeichnen einer Swing-Komponente mit Benutzung des Clip-Rectangles
- Das Parametrisieren der paint()-Methode
- Die Instanzen der Klasse Color
- 4.5 Die Transparenz-Eigenschaft und der Hintergrund von Komponenten
- 4.6 Layout-Manager
- 4.7 Das Überlappen von Komponenten
- 4.8 Das System als Auslöser für Zeichenoperationen
- 4.9 Eventbehandlung
- 4.10 Events auf niedriger Ebene
- 4.11 Events auf höherer Ebene
- 4.12 Das Delegationsmodell in der Eventbehandlung
-
4.13 Lösungen
- Lösung 4.1
- Lösung 4.2
- Lösung 4.3
- Lösung 4.4
- Lösung 4.5
- Lösung 4.6
- Lösung 4.7
- Lösung 4.8
- Lösung 4.9
- Lösung 4.10
- Lösung 4.11
- Lösung 4.12
- Lösung 4.13
- Lösung 4.14
- Lösung 4.15
- Lösung 4.16
- Lösung 4.17
- Lösung 4.18
- Lösung 4.19
- Lösung 4.20
- Lösung 4.21
- Lösung 4.22
- Lösung 4.23
- Lösung 4.24
- Lösung 4.25
- Lösung 4.26
- Kapitel 5: Erweiterte graphische Programmierung
-
Kapitel 6: Das Erscheinungsbild einer Anwendung mit graphischer Oberfläche
- 6.1 Die Architektur Model View Controller (MVC) von Swing-Komponenten
-
6.2 Benutzerdefinierte Modelle, die Standard-Model-Interfaces implementieren
- Die AWT-Klasse List und ein DefaultComboBox-Modell
- Benutzerdefiniertes ComboBox-Modell ohne Eventbehandlung
- Benutzerdefiniertes ComboBox-Modell mit Eventbehandlung
- Benutzung des ComboBox-Modells für eine Viewer-Komponente vom Typ JComboBox
- Die Vorlage für ein benutzerdefiniertes Modell als Erweiterung der Klasse PlainDocument definieren
- 6.3 Standard-Modelle am Beipiel der Klasse JTree
- 6.4 Die UI-Delegationsklassen und ihre Instanzen, der UI-Delegate
- 6.5 Java-Standard-User-Interface-Delegationsklassen
- 6.6 Benutzerdefinierte User-Interface-Delegaten
- 6.7 Die Klassen LookAndFeel, UIDefaults, UIManager und das Interface UIResource
- 6.8 Standard-LookAndFeel-Komponenten
- 6.9 Das Erweitern der LookandFeel-Klasse
- 6.10 Lösungen
-
Kapitel 7: Innere Klassen
-
7.1 Die Definition von inneren Klassen und deren Instanzen
- Instantiieren von Member-Klassen innerhalb der umgebenden Klasse
- Instantiieren von Member-Klassen außerhalb der umgebenden Klasse
- Instantiieren von Static-Member-Klassen innerhalb der umgebenden Klasse
- Instantiieren von Static-Member-Klassen außerhalb der umgebenden Klasse
- Lokale Klassen
- Anonyme Klassen
- Member-Interfaces
- Member-Interface mittels einer anonymen Klasse implementieren
- Member-Interface von einer anderen Klasse implementieren
- Member-Interfaces und Member-Klassen
-
7.2 Innere Klassen am Beispiel von Event-Listener und Event-Adapter
- Den WindowAdapter als Member-Klasse definieren
- Den WindowAdapter mittels einer anonymen Klasse implementieren
- Den ActionListener mittels einer anonymen Klasse implementieren
- Benutzdefinierte Event-Objekte und Event-Listener für JButton- und JTextField-Komponenten
- Benutzdefinierte Event-Objekte und Event-Listener für JRadioButton- Komponenten
- Benutzderfinierte Event-Objekte und Event-Listener für JLabel-Komponenten
- 7.3 Weitere Beispiele mit inneren Klassendefinitionen
- 7.4 Lösungen:
-
7.1 Die Definition von inneren Klassen und deren Instanzen
-
Kapitel 8: Generics
- 8.1 Die Generizität
- 8.2 Generische Klassen und Interfaces
- 8.3 Wildcardtypen
- 8.4 Legacy Code, Erasure und Raw-Typen
- 8.5 Generische Arrays
- 8.6 Generische Methoden
- 8.7 for-each-Schleifen für Collectionen
- 8.8 Generische Standard-Klassen und -Interfaces
- 8.9 Enumerationen und die generische Klasse Enum>
- 8.10 Die Interfaces Enumeration, Iterable und Iterator sowie Map und Set
- 8.11 Die Einträge der UIDefaults-Tabelle als Instanz der Klasse Hashtable
- 8.12 Die generischen Klassen Class und Constructor und das »dynamische« Erzeugen von Objekten
- 8.13 Das Reflection-API
-
8.14 Definition von benutzerdefinierten Modellen, die generische Klassen und generische Interfaces benutzen
- Ein benutzerdefiniertes UIDefaults-Tree-Modell, das die Eigenschaften von JButton-, JList- und JTree-Komponenten speichert
- Die Syntax der firexxx-Methodensignaturen von TreeModel-Klassen
- Ein UIDefaults-Tree-Modell, das die String-Eigenschaften von Swing- Komponenten speichert
- Benutzerdefiniertes List-Modell ohne Eventbehandlung
- Benutzung des List-Modells für eine Viewer-Komponente vom Typ JList
- Benutzerdefiniertes List-Modell mit Eventbehandlung
- Benutzung des List-Modells für eine Viewer-Komponente vom Typ JList
- Vervollständigung der Lösung für ein benutzerdefiniertes List-Modell
-
8.15 Lösungen
- Lösung 8.1
- Lösung 8.2
- Lösung 8.3
- Lösung 8.4
- Lösung 8.5
- Lösung 8.6
- Lösung 8.7
- Lösung 8.8
- Lösung 8.9
- Lösung 8.10
- Lösung 8.11
- Lösung 8.12
- Lösung 8.13
- Lösung 8.14
- Lösung 8.15
- Lösung 8.16
- Lösung 8.17
- Lösung 8.18
- Lösung 8.19
- Lösung 8.20
- Lösung 8.21
- Lösung 8.22
- Lösung 8.23
- Lösung 8.24
- Lösung 8.25 (1/2)
- Lösung 8.25 (2/2)
- Lösung 8.26
- Lösung 8.27
- Lösung 8.28
- Lösung 8.29
- Lösung 8.30
- Lösung 8.31
- Lösung 8.32
- Lösung 8.33 (1/2)
- Lösung 8.33 (2/2)
- Kapitel 9: Exceptions und Errors
-
Kapitel 10: Neue Features von Java 6.0
- 10.1 Ergänzungen im Sprachumfeld und in der Behandlung von Exceptions mit Java 6.0
- 10.2 Die neuen displayName[s] Methoden der Klasse Calendar
- 10.3 Die Interfaces NavigableMaps und NavigableSets
- 10.4 Splash Screens
- 10.5 Der Dialog-ModalityType
- 10.6 Sortieren und Filtern von Tabelleneinträgen
- 10.7 Komponenten für die Registerkarten (Tabs) von JTabbedPane-Instanzen nutzen
- 10.8 Drag-and-Drop-Unterstützung in Java
- 10.9 Benutzerdefinierte Transfer-Handler
- 10.10 Die neuen Drag-and-Drop-Klassen aus der Java-Version 6.0
- 10.11 Lösungen
-
Kapitel 11: Neue Features von Java 7
- 11.1 Strings in switch-Anweisungen und neue Literale mit Java 7
- 11.2 Typen in Java
- 11.3 Typprüfung und Typsicherheit mittels Generics (1/2)
- 11.3 Typprüfung und Typsicherheit mittels Generics (2/2)
- 11.4 Subtyping für parametrisierte Typen
- 11.5 Die extends-Klausel
- 11.6 Typinferenz für Methoden
- 11.7 Typinferenz beim Erzeugen von Instanzen eines generischen Typs
- 11.8 Heap Pollution
- 11.9 Wildcard-Capture
- 11.10 Multi-catch-Klausel und verbesserte Typprüfung beim Rethrowing von Exceptions
- 11.11 Transparente und nicht-rechteckige Fenster mit Java 7 erzeugen
- 11.12 Das Überlappen von LW- und HW-Komponenten mit Java 7
- 11.13 Das Nimbus-LookAndFeel
- 11.14 Swing-Komponenten mit einem JLayer dekorieren
- 11.15 Andere Erweiterungen
-
11.16 Lösungen
- Lösung 11.1
- Lösung 11.2
- Lösung 11.3
- Lösung 11.4 (1/2)
- Lösung 11.4 (2/2)
- Lösung 11.5 (1/4)
- Lösung 11.5 (2/4)
- Lösung 11.5 (3/4)
- Lösung 11.5 (4/4)
- Lösung 11.6 (1/2)
- Lösung 11.6 (2/2)
- Lösung 11.7 (1/2)
- Lösung 11.7 (2/2)
- Lösung 11.8
- Lösung 11.9
- Lösung 11.10
- Lösung 11.11 (1/2)
- Lösung 11.11 (2/2)
- Lösung 11.12
- Lösung 11.13
- Lösung 11.14
- Lösung 11.15
- Lösung 11.16 (1/2)
- Lösung 11.16 (2/2)
-
Kapitel 12: Java 8 Lambdas und Streams
- 12.1 Mittels anonymer Klassen Code an Methoden übergeben
- 12.2 Funktionale Interfaces
- 12.3 Syntax und Deklaration von Lambda-Ausdrücken
- 12.4 Scoping und Variable Capture
- 12.5 Methoden- und Konstruktor-Referenzen
- 12.6 Default-Methoden und statische Methoden in Interfaces
- 12.7 Das neue Interface Stream
- 12.8 Die forEach-Methoden von Iterator, Iterable und Stream
- 12.9 Die Default-Methoden des Map-Interface
- 12.10 Das Interface Collector und die Klasse Collectors. Reduktion mittels Methoden von Streams und Kollektoren
- 12.11 Parallele Streams
- 12.12 Die Bulk-Operationen der Klasse ConcurrentHashMap
-
12.13 Lösungen
- Lösung 12.1
- Lösung 12.2
- Lösung 12.3
- Lösung 12.4
- Lösung 12.5
- Lösung 12.6 (1/2)
- Lösung 12.6 (2/2)
- Lösung 12.7
- Lösung 12.8 (1/2)
- Lösung 12.8 (2/2)
- Lösung 12.9
- Lösung 12.10
- Lösung 12.11
- Lösung 12.12
- Lösung 12.13 (1/2)
- Lösung 12.13 (2/2)
- Lösung 12.14
- Lösung 12.15 (1/5)
- Lösung 12.15 (2/5)
- Lösung 12.15 (3/5)
- Lösung 12.15 (4/5)
- Lösung 12.15 (5/5)
- Lösung 12.16 (1/2)
- Lösung 12.16 (2/2)
- Lösung 12.17 (1/3)
- Lösung 12.17 (2/3)
- Lösung 12.17 (3/3)
- Lösung 12.18 (1/2)
- Lösung 12.18 (2/2)
- Stichwortverzeichnis (1/4)
- Stichwortverzeichnis (2/4)
- Stichwortverzeichnis (3/4)
- Stichwortverzeichnis (4/4)
Product information
- Title: Java 8 - Das Übungsbuch
- Author(s):
- Release date: June 2014
- Publisher(s): mitp Verlag
- ISBN: 9783826696480
You might also like
book
Funktionale Programmierung in Java
Mit der Version 8 erhielt die objektorientierte Programmiersprache Java die Möglichkeit, mit ihr funktional zu programmieren. …
book
Java Übungsbuch - für die Versionen Java 8 bis Java 17
Trainieren Sie Ihre Java-Kenntnisse Learning by Doing anhand praktischer Übungen Mit vollständigen und kommentierten Lösungen Dieses …
book
Java Schnelleinstieg
Java programmieren lernen ohne Vorkenntnisse Alle Grundlagen für den professionellen Einsatz Einfache Praxisbeispiele und Übungsaufgaben Inklusive …
book
Java – Der umfassende Programmierkurs
Verständlich, anschaulich, detailliert und nützlich - mit diesem Anspruch tritt das erfolgreiche Autorenteam Louis/Müller an, Einsteigern …