Java 8 - Das Übungsbuch

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

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis (1/5)
  5. Inhaltsverzeichnis (2/5)
  6. Inhaltsverzeichnis (3/5)
  7. Inhaltsverzeichnis (4/5)
  8. Inhaltsverzeichnis (5/5)
  9. Einleitung (1/2)
  10. Einleitung (2/2)
  11. Kapitel 1: Klassendefinition und Objektinstantiierung
    1. 1.1 Klassen und Objekte
      1. Definition einer Klasse
      2. Objekt (Instanz) einer Klasse erzeugen
    2. 1.2 Die Member einer Klasse: Felder und Methoden
      1. Zugriff auf Felder
      2. Aufruf von Methoden
    3. 1.3 Das Überladen von Methoden
      1. Eine Methode überladen
    4. 1.4 Die Datenkapselung, ein Prinzip der objektorientierten Programmierung
      1. Zugriffsmethoden
    5. 1.5 Das »aktuelle Objekt« und die »this-Referenz«
      1. Konstruktordefinitionen
    6. 1.6 Die Wert- und Referenzübergabe in Methodenaufrufen
      1. Wertübergabe in Methoden (»call by value«)
    7. 1.7 Globale und lokale Referenzen
      1. Der Umgang mit Referenzen
      2. Wiederholungsaufgabe
    8. 1.8 Selbstreferenzierende Klassen und Felder (»self-referential classes and fields«)
      1. Der Einsatz von selbstreferenzierenden Feldern
    9. 1.9 Java-Pakete
      1. Die package-Anweisung
      2. Die import-Anweisung
    10. 1.10 Die Modifikatoren für Felder und Methoden in Zusammenhang mit der Definition von Paketen
      1. Pakete und die Sichtbarkeit von Membern einer Klasse
    11. 1.11 Standard-Klassen von Java
      1. Aufruf von Methoden der Klasse Math
      2. Wiederholungsaufgabe
    12. 1.12 Die Wrapper-Klassen von Java und das Auto(un)boxing
      1. Die Felder und Methoden von Wrapper-Klassen
      2. Das Auto(un)boxing
    13. 1.13 Arrays (Reihungen) und die Klassen Array und Arrays
      1. Der Umgang mit Array-Objekten
    14. 1.14 Zeichenketten und die Klasse String
      1. Der Umgang mit String-Objekten
    15. 1.15 Mit der Version 5.0 eingeführte Spracherneuerungen für Arrays und Methoden
      1. Einfache und erweiterte for-Schleifen
      2. Methoden mit variablen Argumentenlisten
    16. 1.16 Das Initialisieren von Klassen- und Instanzfeldern
      1. Das Initialisieren von Instanzfeldern
      2. Das Initialisieren von Klassenfeldern
    17. 1.17 Private Konstruktoren
      1. Ein Objekt mit Hilfe eines privaten Konstruktoren erzeugen
      2. Mehrere konstante Werte (Objekte) mit Hilfe eines privaten Konstruktoren erzeugen
    18. 1.18 Lösungen
      1. Lösung 1.1
      2. Lösung 1.2
      3. Lösung 1.3
      4. Lösung 1.4
      5. Lösung 1.5
      6. Lösung 1.6
      7. Lösung 1.7
      8. Lösung 1.8
      9. Lösung 1.9
      10. Lösung 1.10
      11. Lösung 1.11
      12. Lösung 1.12
      13. Lösung 1.13
      14. Lösung 1.14
      15. Lösung 1.15
      16. Lösung 1.16
      17. Lösung 1.17
      18. Lösung 1.18
      19. Lösung 1.19
      20. Lösung 1.20
      21. Lösung 1.21
      22. Lösung 1.22
      23. Lösung 1.23
      24. Lösung 1.24
      25. Lösung 1.25
      26. Lösung 1.26
  12. Kapitel 2: Abgeleitete Klassen und Vererbung
    1. 2.1 Abgeleitete Klassen
    2. 2.2 Die Konstruktoren von abgeleiteten Klassen
    3. 2.3 Abgeleitete Klassen und die Sichtbarkeit von Feldern und Methoden
      1. Test von Sichtbarkeitsebenen
    4. 2.4 Das Verdecken von Klassenmethoden und das statische Binden von Methoden
      1. Der Aufruf von verdeckten Klassenmethoden
    5. 2.5 Das Überschreiben von Instanzmethoden und das dynamische Binden von Methoden
      1. Das dynamische Binden von Methoden
    6. 2.6 Vererbung und Komposition
      1. Die Komposition
      2. Die Vererbung
    7. 2.7 Kovariante Rückgabetypen in Methoden
      1. Die Benutzung von kovarianten Rückgabetypen
    8. 2.8 Verdeckte Felder
      1. Wiederholungsaufgabe
    9. 2.9 Vergrößernde und verkleinernde Konvertierung (»up- und down-casting«)
      1. Up- und Down-Casts
      2. Der Unterschied zwischen »ist-ein-« und »hat-ein- Beziehungen«
    10. 2.10 Der Polymorphismus, ein Prinzip der objektorientierten Programmierung
      1. Der »Subtyp-Polymorphismus« im Kontext einer Klassenhierarchie
    11. 2.11 Lösungen
      1. Lösung 2.1
      2. Lösung 2.2
      3. Lösung 2.3
      4. Lösung 2.4
      5. Lösung 2.5
      6. Lösung 2.6
      7. Lösung 2.7
      8. Lösung 2.8
      9. Lösung 2.9
      10. Lösung 2.10
  13. Kapitel 3: Abstrakte Klassen und Interfaces
    1. 3.1 Abstrakte Klassen
    2. 3.2 Abstrakte Java-Standard-Klassen und eigene Definitionen von abstrakten Klassen
      1. Die abstrakte Klasse Number und ihre Unterklassen
      2. Definition einer eigenen abstrakten Klasse
    3. 3.3 Die Referenzen vom Typ einer abstrakten Klassen
      1. Der Subtyp-Polymorphismus für Methoden im Kontext einer Klassenhierarchie mit abstrakten Klassendefinitionen
      2. Der Subtyp-Polymorphismus für Felder im Kontext einer Klassenhierarchie mit abstrakten Klassendefinitionen
    4. 3.4 Interfaces (Schnittstellen)
      1. Die Definition eines Interface
    5. 3.5 Die Entscheidung zwischen abstrakten Klassen und Interfaces
      1. Paralleler Einsatz von Interfaces und abstrakten Klassen
    6. 3.6 Oberinterfaces
      1. Das Ableiten von Interfaces
    7. 3.7 Implementieren von mehreren Interfaces für eine Klasse
      1. Wiederholungsaufgabe
    8. 3.8 Die Vererbung an Beispielen von Java-Standard-Klassen und Standard-Interfaces
    9. 3.9 Das Klonen von Objekten
      1. Das Klonen von Instanzen der eigenen Klasse
      2. Das Klonen von Instanzen anderer Klassen
      3. Das Klonen von Arrays
      4. Das Überschreiben der clone()-Methode in Java 5.0
    10. 3.10 Die Gleichheit von Objekten
      1. Die Gleichheit von geklonten Objekten
    11. 3.11 Das oberflächliche und das tiefe Klonen (»shallow und deep cloning«)
      1. Das Klonen und der Copy-Konstruktor
      2. Tiefes Klonen am Beispiel von Array-Objekten
      3. Oberflächliches und tiefes Klonen für Referenztypen
    12. 3.12 Der Garbage Collector und das Beseitigen von Objekten
      1. Das Zerstören von Instanzen
    13. 3.13 Lösungen
      1. Lösung 3.1
      2. Lösung 3.2
      3. Lösung 3.3
      4. Lösung 3.4
      5. Lösung 3.5
      6. Lösung 3.6
      7. Lösung 3.7
      8. Lösung 3.8
      9. Lösung 3.9
      10. Lösung 3.10
      11. Lösung 3.11
      12. Lösung 3.12
      13. Lösung 3.13
      14. Lösung 3.14
      15. Lösung 3.15
      16. Lösung 3.16
      17. Lösung 3.17
  14. Kapitel 4: Einführung in die graphische Programmierung
    1. 4.1 Das AWT (Abstract Windowing Toolkit) und Swing
    2. 4.2 Fenster unter graphischen Oberflächen
    3. 4.3 Die Klassen Graphics und Graphics2D
    4. 4.4 Methoden zum Zeichnen
      1. Eine einfache AWT-Komponente vom Typ Frame
      2. Eine Einfache Swing-Komponente vom Typ JFrame
      3. Ein JWindow-Fenster
      4. Ein JDialog-Fenster
      5. Das Neuzeichnen einer Swing-Komponente ohne Benutzung des Clip-Rectangles
      6. Das Neuzeichnen einer Swing-Komponente mit Benutzung des Clip-Rectangles
      7. Das Parametrisieren der paint()-Methode
      8. Die Instanzen der Klasse Color
    5. 4.5 Die Transparenz-Eigenschaft und der Hintergrund von Komponenten
    6. 4.6 Layout-Manager
      1. Die vordefinierten Layout-Manager für Standard-Klassen
      2. Die Layout-Manager von AWT-Komponenten
      3. Die Layout-Manager von Swing-Komponenten
      4. Das BoxLayout
      5. Das GridBagLayout
      6. Das null-Layout
    7. 4.7 Das Überlappen von Komponenten
      1. Das Verhalten von AWT-LW- und -HW-Komponenten
      2. AWT-Container mit LW- und HW-Kindkomponenten
      3. Z-Order-Index für AWT-LW-Komponenten
      4. Das Verhalten von Swing-Komponenten
      5. Swing-Container und der Z-Order-Index für Swing-Komponenten
    8. 4.8 Das System als Auslöser für Zeichenoperationen
      1. Resizing von AWT-Komponenten
      2. Resizing von Swing-Komponenten
    9. 4.9 Eventbehandlung
    10. 4.10 Events auf niedriger Ebene
      1. Das Interface WindowListener und die Klasse WindowEvent
      2. Die Klasse WindowAdapter
    11. 4.11 Events auf höherer Ebene
      1. Das Interface ActionListener und die Klasse ActionEvent
      2. Das Interface KeyListener und die Klasse KeyEvent
    12. 4.12 Das Delegationsmodell in der Eventbehandlung
      1. Die Ereignisbehandlung in einer separaten Klasse definieren
    13. 4.13 Lösungen
      1. Lösung 4.1
      2. Lösung 4.2
      3. Lösung 4.3
      4. Lösung 4.4
      5. Lösung 4.5
      6. Lösung 4.6
      7. Lösung 4.7
      8. Lösung 4.8
      9. Lösung 4.9
      10. Lösung 4.10
      11. Lösung 4.11
      12. Lösung 4.12
      13. Lösung 4.13
      14. Lösung 4.14
      15. Lösung 4.15
      16. Lösung 4.16
      17. Lösung 4.17
      18. Lösung 4.18
      19. Lösung 4.19
      20. Lösung 4.20
      21. Lösung 4.21
      22. Lösung 4.22
      23. Lösung 4.23
      24. Lösung 4.24
      25. Lösung 4.25
      26. Lösung 4.26
  15. Kapitel 5: Erweiterte graphische Programmierung
    1. 5.1 Der RootPane-Container
      1. Die LayeredPane einer Fensterkomponente
      2. Eine beliebige Instanz der Klasse JLayeredPane
      3. Das Positionieren von Komponenten in und innerhalb von Ebenen
      4. Eine GlassPane, die Ereignisse empfängt
      5. Eine benutzerdefinierte GlassPane-Komponente
    2. 5.2 Interne Fenster
      1. Die Instanzen der Klasse JInternalFrame
      2. Die Verschachtelung von internen Fenstern
    3. 5.3 Die Applikation als Auslöser für Zeichenoperationen
      1. Aufruf der repaint()-Methode für AWT-Komponenten
      2. Aufruf der repaint()-Methode für Swing-Komponenten
      3. Die getGraphics()-Methode
      4. Die Methoden paint(), getGraphics() und repaint() gleichzeitig nutzen
      5. Weiterführendes Zeichnen (»incremental painting«)
    4. 5.4 Das Interface Shape
      1. Die Methode draw() der Klasse Graphics2D
      2. Wiederholungsaufgabe
      3. Wiederholungsaufgabe
    5. 5.5 Praxisnahe Zeichenvorgänge und Eventbehandlungen
      1. Wiederholungsaufgabe
    6. 5.6 Benutzerdefinierte Event-Objekte und Event-Listener
      1. Das Eweitern der Klasse EventObject und des Interface EventListener
    7. 5.7 Lösungen
      1. Lösung 5.1
      2. Lösung 5.2
      3. Lösung 5.3
      4. Lösung 5.4
      5. Lösung 5.5
      6. Lösung 5.6
      7. Lösung 5.7
      8. Lösung 5.8
      9. Lösung 5.9
      10. Lösung 5.10
      11. Lösung 5.11
      12. Lösung 5.12
      13. Lösung 5.13
      14. Lösung 5.14
      15. Lösung 5.15
      16. Lösung 5.16
      17. Lösung 5.17 (1/2)
      18. Lösung 5.17 (2/2)
  16. Kapitel 6: Das Erscheinungsbild einer Anwendung mit graphischer Oberfläche
    1. 6.1 Die Architektur Model View Controller (MVC) von Swing-Komponenten
    2. 6.2 Benutzerdefinierte Modelle, die Standard-Model-Interfaces implementieren
      1. Die AWT-Klasse List und ein DefaultComboBox-Modell
      2. Benutzerdefiniertes ComboBox-Modell ohne Eventbehandlung
      3. Benutzerdefiniertes ComboBox-Modell mit Eventbehandlung
      4. Benutzung des ComboBox-Modells für eine Viewer-Komponente vom Typ JComboBox
      5. Die Vorlage für ein benutzerdefiniertes Modell als Erweiterung der Klasse PlainDocument definieren
    3. 6.3 Standard-Modelle am Beipiel der Klasse JTree
      1. Die Klassen JTree und DefaultMutableTreeNode
      2. Die Klassen DefaultTreeModel und DefaultTreeSelectionModel
      3. Benutzerdefiniertes Tree-Modell mit Eventbehandlung
    4. 6.4 Die UI-Delegationsklassen und ihre Instanzen, der UI-Delegate
    5. 6.5 Java-Standard-User-Interface-Delegationsklassen
      1. Der Standard-UI-Delegate
      2. Das Setzen der bevorzugten Größe für Komponenten
      3. Das Setzen einer minimalen Größe für Komponenten in Abhängigkeit von der Größe eines zu zeichnenden Bildes
      4. Das Setzen einer minimalen Größe für Komponenten in Abhängigkeit von der Größe der beim Zeichnen verwendeten Schrift
    6. 6.6 Benutzerdefinierte User-Interface-Delegaten
      1. Ein benutzerdefinierter UI-Delegate und das Setzen der bevorzugten Größe von Komponenten
      2. Ein benutzerdefinierter UI-Delegate für eine benutzerdefinierte Komponente
      3. Wiederholungsaufgabe
    7. 6.7 Die Klassen LookAndFeel, UIDefaults, UIManager und das Interface UIResource
      1. Lesen von Werten der UIDefaults-Tabelle
      2. Setzen von Werten der UIDefaults-Tabelle
      3. Setzen des UI-Delegationsobjektes mit der Methode put() der UIManager-Klasse
    8. 6.8 Standard-LookAndFeel-Komponenten
      1. LookAndFeel-spezifische Wiedergabe von Komponenten
      2. Wechseln zwischen allen installierten LookandFeel-Komponenten
    9. 6.9 Das Erweitern der LookandFeel-Klasse
      1. Benutzerdefinierte LookAndFeel-Komponenten
      2. Das Zusammenspiel zwischen den drei MVC-Komponenten Model, Viewer und Controller
    10. 6.10 Lösungen
      1. Lösung 6.1
      2. Lösung 6.2
      3. Lösung 6.3
      4. Lösung 6.4
      5. Lösung 6.5
      6. Lösung 6.6
      7. Lösung 6.7
      8. Lösung 6.8
      9. Lösung 6.9
      10. Lösung 6.10
      11. Lösung 6.11
      12. Lösung 6.12
      13. Lösung 6.13
      14. Lösung 6.14
      15. Lösung 6.15
      16. Lösung 6.16
      17. Lösung 6.17
      18. Lösung 6.18
      19. Lösung 6.19
      20. Lösung 6.20
      21. Lösung 6.21
      22. Lösung 6.22 (1/2)
      23. Lösung 6.22 (2/2)
  17. Kapitel 7: Innere Klassen
    1. 7.1 Die Definition von inneren Klassen und deren Instanzen
      1. Instantiieren von Member-Klassen innerhalb der umgebenden Klasse
      2. Instantiieren von Member-Klassen außerhalb der umgebenden Klasse
      3. Instantiieren von Static-Member-Klassen innerhalb der umgebenden Klasse
      4. Instantiieren von Static-Member-Klassen außerhalb der umgebenden Klasse
      5. Lokale Klassen
      6. Anonyme Klassen
      7. Member-Interfaces
      8. Member-Interface mittels einer anonymen Klasse implementieren
      9. Member-Interface von einer anderen Klasse implementieren
      10. Member-Interfaces und Member-Klassen
    2. 7.2 Innere Klassen am Beispiel von Event-Listener und Event-Adapter
      1. Den WindowAdapter als Member-Klasse definieren
      2. Den WindowAdapter mittels einer anonymen Klasse implementieren
      3. Den ActionListener mittels einer anonymen Klasse implementieren
      4. Benutzdefinierte Event-Objekte und Event-Listener für JButton- und JTextField-Komponenten
      5. Benutzdefinierte Event-Objekte und Event-Listener für JRadioButton- Komponenten
      6. Benutzderfinierte Event-Objekte und Event-Listener für JLabel-Komponenten
    3. 7.3 Weitere Beispiele mit inneren Klassendefinitionen
      1. Die Methoden der Klasse JOptionPane aus einer anonymen Klasse aufrufen
      2. Einen Farbauswahldialog und die main()-Methode innerhalb von inneren Klassen definieren
      3. Wiederholungsaufgabe
    4. 7.4 Lösungen:
      1. Lösung 7.1
      2. Lösung 7.2
      3. Lösung 7.3
      4. Lösung 7.4
      5. Lösung 7.5
      6. Lösung 7.6
      7. Lösung 7.7
      8. Lösung 7.8
      9. Lösung 7.9
      10. Lösung 7.10
      11. Lösung 7.11
      12. Lösung 7.12
      13. Lösung 7.13
      14. Lösung 7.14
      15. Lösung 7.15
      16. Lösung 7.16
      17. Lösung 7.17
      18. Lösung 7.18
      19. Lösung 7.19
  18. Kapitel 8: Generics
    1. 8.1 Die Generizität
    2. 8.2 Generische Klassen und Interfaces
      1. Generischer Datentyp als Behälter für die Instanzen vom Typ des Klassenparameters
      2. Generischer Datentyp als »Über-Typ« für die Instanzen vom Typ des Klassenparameters
      3. Generischer Stack
    3. 8.3 Wildcardtypen
      1. Ungebundene Wildcardtypen
      2. Obere Schranke (»upper bound wildcard«) für Wildcardtypen
      3. Untere Schranke (»lower bound wildcard«) für Wildcardtypen
    4. 8.4 Legacy Code, Erasure und Raw-Typen
      1. Raw-Typen am Beispiel einer generischen Klasse mit zwei Typparametern
      2. Generische Interfaces
      3. Brückenmethoden (»bridge methods«)
    5. 8.5 Generische Arrays
      1. Erzeugen von generischen Arrays
    6. 8.6 Generische Methoden
      1. Generische Methodendefinitionen
    7. 8.7 for-each-Schleifen für Collectionen
      1. Generische Arrays in generischen Methodendefinitionen
    8. 8.8 Generische Standard-Klassen und -Interfaces
      1. Die Klasse ArrayList und die Schnittstelle List
      2. Die Klasse Vector und die Schnittstelle Collection
      3. Die Klasse TreeMap
      4. Wiederholungsaufgabe
    9. 8.9 Enumerationen und die generische Klasse Enum>
      1. Die Definition von Enumerationen
      2. Konstruktoren und Methoden von enum-Klassen
    10. 8.10 Die Interfaces Enumeration, Iterable und Iterator sowie Map und Set
      1. Weitere generische Schnittstellen
    11. 8.11 Die Einträge der UIDefaults-Tabelle als Instanz der Klasse Hashtable
      1. Das Ändern der font-Eigenschaft von Swing-Komponenten
    12. 8.12 Die generischen Klassen Class und Constructor und das »dynamische« Erzeugen von Objekten
    13. 8.13 Das Reflection-API
      1. Die Klasse Class
      2. Die Klasse Constructor
      3. Erzeugen von generischen Arrays mit Hilfe eines Class-Objekts
      4. Mit Reflection Informationen zu Klassen, Oberklassen und Interfaces holen
      5. Das Interface GenericDeclaration und die Unterinterfaces von Type
    14. 8.14 Definition von benutzerdefinierten Modellen, die generische Klassen und generische Interfaces benutzen
      1. Ein benutzerdefiniertes UIDefaults-Tree-Modell, das die Eigenschaften von JButton-, JList- und JTree-Komponenten speichert
      2. Die Syntax der firexxx-Methodensignaturen von TreeModel-Klassen
      3. Ein UIDefaults-Tree-Modell, das die String-Eigenschaften von Swing- Komponenten speichert
      4. Benutzerdefiniertes List-Modell ohne Eventbehandlung
      5. Benutzung des List-Modells für eine Viewer-Komponente vom Typ JList
      6. Benutzerdefiniertes List-Modell mit Eventbehandlung
      7. Benutzung des List-Modells für eine Viewer-Komponente vom Typ JList
      8. Vervollständigung der Lösung für ein benutzerdefiniertes List-Modell
    15. 8.15 Lösungen
      1. Lösung 8.1
      2. Lösung 8.2
      3. Lösung 8.3
      4. Lösung 8.4
      5. Lösung 8.5
      6. Lösung 8.6
      7. Lösung 8.7
      8. Lösung 8.8
      9. Lösung 8.9
      10. Lösung 8.10
      11. Lösung 8.11
      12. Lösung 8.12
      13. Lösung 8.13
      14. Lösung 8.14
      15. Lösung 8.15
      16. Lösung 8.16
      17. Lösung 8.17
      18. Lösung 8.18
      19. Lösung 8.19
      20. Lösung 8.20
      21. Lösung 8.21
      22. Lösung 8.22
      23. Lösung 8.23
      24. Lösung 8.24
      25. Lösung 8.25 (1/2)
      26. Lösung 8.25 (2/2)
      27. Lösung 8.26
      28. Lösung 8.27
      29. Lösung 8.28
      30. Lösung 8.29
      31. Lösung 8.30
      32. Lösung 8.31
      33. Lösung 8.32
      34. Lösung 8.33 (1/2)
      35. Lösung 8.33 (2/2)
  19. Kapitel 9: Exceptions und Errors
    1. 9.1 Ausnahmen auslösen
    2. 9.2 Ausnahmen abfangen oder weitergeben
      1. Unbehandelte RuntimeExceptions
      2. Behandelte RuntimeExceptions
      3. Die Weitergabe von Ausnahmen
    3. 9.3 Das Verwenden von finally in der Ausnahmebehandlung
      1. Der finally-Block
      2. Geschachtelte try/catch-Blöcke
    4. 9.4 Ausnahmen manuell auslösen
      1. Standard-Ausnahmen manuell auslösen
    5. 9.5 Exception-Unterklassen erzeugen
      1. Benutzerdefinierte Ausnahmen manuell auslösen
      2. Wiederholungsaufgabe
    6. 9.6 Ketten von Ausnahmen
      1. Exception-Ketten
    7. 9.7 Die Ausnahmen bei einem Wechsel von LookAndFeel-Komponenten
      1. Die LookAndFeel-spezifischen Einträge der UIDefaults-Tabelle
      2. Wiederholungsaufgabe
    8. 9.8 Lösungen
      1. Lösung 9.1
      2. Lösung 9.2
      3. Lösung 9.3
      4. Lösung 9.4
      5. Lösung 9.5
      6. Lösung 9.6
      7. Lösung 9.7
      8. Lösung 9.8
      9. Lösung 9.9
      10. Lösung 9.10 (1/2)
      11. Lösung 9.10 (2/2)
      12. Lösung 9.11
  20. Kapitel 10: Neue Features von Java 6.0
    1. 10.1 Ergänzungen im Sprachumfeld und in der Behandlung von Exceptions mit Java 6.0
      1. Der GLOBAL_LOGGER_NAME, Array-Copies, Empty-Strings und throw in einem catch-Block
    2. 10.2 Die neuen displayName[s] Methoden der Klasse Calendar
      1. Die Klassen Calendar und Date
    3. 10.3 Die Interfaces NavigableMaps und NavigableSets
      1. Die Methoden der Interfaces NavigableMap und NavigableSet
    4. 10.4 Splash Screens
      1. Einen Splash Screen setzen
      2. Auf einen Splash Screen zeichnen
    5. 10.5 Der Dialog-ModalityType
      1. Die Dialog.ModalityType-Option
    6. 10.6 Sortieren und Filtern von Tabelleneinträgen
      1. Das Sortieren von Tabelleneinträgen mit Hilfe der Klasse TableRowSorter
      2. Das Sortieren von Tabelleneinträgen unter Benutzung eines benutzerdefinierten Table-Modells
      3. Filtern von Tabelleneinträge mit Hilfe von Standard-Filterklassen
      4. Einen benutzerdefinierten Filter erzeugen
      5. Wiederholungsaufgabe
    7. 10.7 Komponenten für die Registerkarten (Tabs) von JTabbedPane-Instanzen nutzen
      1. JTabbedPane-Registerkarten mit einer String-Beschriftung
      2. JTabbedPane-Registerkarten mit Komponenten
    8. 10.8 Drag-and-Drop-Unterstützung in Java
      1. Drag-and-Drop-Test für JTextArea- und JList-Komponenten
      2. Eigenschaften für den Transfer definieren
      3. Drag-and-Drop-Test für JLabel-Komponenten
      4. Die Klassen ClipBoard, StringSelection und DataFlavor
      5. Das Interface DropTargetListener und die Klasse DropTargetEvent
    9. 10.9 Benutzerdefinierte Transfer-Handler
      1. Benutzerdefinierter Transfer-Handler für JList-Komponenten
      2. Benutzerdefinierter Transfer-Handler für JTree-Komponenten
    10. 10.10 Die neuen Drag-and-Drop-Klassen aus der Java-Version 6.0
      1. Eine neue Betrachtung der Drop-Fähigkeit für JList-Komponenten
      2. Eine neue Betrachtung der Drop-Fähigkeit für JTree-Komponenten
    11. 10.11 Lösungen
      1. Lösung 10.1
      2. Lösung 10.2
      3. Lösung 10.3
      4. Lösung 10.4
      5. Lösung 10.5
      6. Lösung 10.6
      7. Lösung 10.7
      8. Lösung 10.8
      9. Lösung 10.9
      10. Lösung 10.10
      11. Lösung 10.11
      12. Lösung 10.12
      13. Lösung 10.13
      14. Lösung 10.14
      15. Lösung 10.15
      16. Lösung 10.16
      17. Lösung 10.17
      18. Lösung 10.18
      19. Lösung 10.19
      20. Lösung 10.20
      21. Lösung 10.21
      22. Lösung 10.22
  21. Kapitel 11: Neue Features von Java 7
    1. 11.1 Strings in switch-Anweisungen und neue Literale mit Java 7
      1. Binäre Literale, Underscores in numerischen Literalen und Strings in switch-Anweisungen
    2. 11.2 Typen in Java
    3. 11.3 Typprüfung und Typsicherheit mittels Generics (1/2)
    4. 11.3 Typprüfung und Typsicherheit mittels Generics (2/2)
    5. 11.4 Subtyping für parametrisierte Typen
    6. 11.5 Die extends-Klausel
    7. 11.6 Typinferenz für Methoden
    8. 11.7 Typinferenz beim Erzeugen von Instanzen eines generischen Typs
    9. 11.8 Heap Pollution
    10. 11.9 Wildcard-Capture
      1. Typinferenz beim Instantiieren von generischen Klassen
      2. Der Diamond-Operator
      3. Schranken für Typvariablen und Typinferenz für Methoden
      4. Parametrisierte Typen und Wildcardtypen
      5. Generische Arraytypen
      6. Subtyping von Referenztypen
    11. 11.10 Multi-catch-Klausel und verbesserte Typprüfung beim Rethrowing von Exceptions
      1. Disjunction-Typ für Exceptions
      2. Typprüfung beim Rethrowing von Exceptions
    12. 11.11 Transparente und nicht-rechteckige Fenster mit Java 7 erzeugen
      1. Fensterdekorationen
      2. Transparente und nicht-rechteckige Fenster
    13. 11.12 Das Überlappen von LW- und HW-Komponenten mit Java 7
      1. LW- und HW-Komponenten überlappen
    14. 11.13 Das Nimbus-LookAndFeel
      1. Das Nimbus-LookAndFeel und das Skinning von Komponenten
    15. 11.14 Swing-Komponenten mit einem JLayer dekorieren
      1. Das Dekorieren von Swing-Komponenten
      2. JLayer- und LayerUI-Instanzen
      3. Event-Handling für JLayer- und LayerUI-Instanzen
    16. 11.15 Andere Erweiterungen
    17. 11.16 Lösungen
      1. Lösung 11.1
      2. Lösung 11.2
      3. Lösung 11.3
      4. Lösung 11.4 (1/2)
      5. Lösung 11.4 (2/2)
      6. Lösung 11.5 (1/4)
      7. Lösung 11.5 (2/4)
      8. Lösung 11.5 (3/4)
      9. Lösung 11.5 (4/4)
      10. Lösung 11.6 (1/2)
      11. Lösung 11.6 (2/2)
      12. Lösung 11.7 (1/2)
      13. Lösung 11.7 (2/2)
      14. Lösung 11.8
      15. Lösung 11.9
      16. Lösung 11.10
      17. Lösung 11.11 (1/2)
      18. Lösung 11.11 (2/2)
      19. Lösung 11.12
      20. Lösung 11.13
      21. Lösung 11.14
      22. Lösung 11.15
      23. Lösung 11.16 (1/2)
      24. Lösung 11.16 (2/2)
  22. Kapitel 12: Java 8 Lambdas und Streams
    1. 12.1 Mittels anonymer Klassen Code an Methoden übergeben
    2. 12.2 Funktionale Interfaces
    3. 12.3 Syntax und Deklaration von Lambda-Ausdrücken
      1. Lambda-Ausdruck ohne Parameter versus anonymer Klasse
      2. Lambda-Ausdruck mit Parameter versus anonymer Klasse
      3. Weitere Beispiele mit anonymen Klassen und Lambda-Ausdrücken
    4. 12.4 Scoping und Variable Capture
      1. Die Umgebung von Lambda-Ausdrücken
      2. Die neuen funktionalen Interfaces Consumer und Predicate und die Übergabe von Lambda-Ausdrücken in Methoden
      3. Wiederholungsaufgabe
    5. 12.5 Methoden- und Konstruktor-Referenzen
      1. Methoden-Referenzen in Zuweisungen
      2. Methoden-Referenzen als Argumente in Methodenaufrufen übergeben
      3. Konstruktor-Referenzen und die neuen funktionalen Interfaces Supplier und Function
    6. 12.6 Default-Methoden und statische Methoden in Interfaces
    7. 12.7 Das neue Interface Stream
    8. 12.8 Die forEach-Methoden von Iterator, Iterable und Stream
    9. 12.9 Die Default-Methoden des Map-Interface
      1. Die forEach()-Methode von Iterable
      2. Die forEach()-Methode des Iterator-Interface
      3. Die funktionalen Interfaces BiConsumer, BiPredicate und BiFunction
      4. Die Methoden des Interface Stream und die Behandlung von Exceptions in Lambda-Ausdrücken
      5. Die forEach- und replace-Methoden des Map-Interface
    10. 12.10 Das Interface Collector und die Klasse Collectors. Reduktion mittels Methoden von Streams und Kollektoren
      1. Weitere Methoden des Interface Stream: limit(), count(), max(), min(), skip(), reduce() und collect() (1/2)
      2. Weitere Methoden des Interface Stream: limit(), count(), max(), min(), skip(), reduce() und collect() (2/2)
      3. Das Interface Collector und die Klasse Collectors
    11. 12.11 Parallele Streams
    12. 12.12 Die Bulk-Operationen der Klasse ConcurrentHashMap
      1. Parallele Streams
      2. Die neuen Methoden von ConcurrentHashMap
    13. 12.13 Lösungen
      1. Lösung 12.1
      2. Lösung 12.2
      3. Lösung 12.3
      4. Lösung 12.4
      5. Lösung 12.5
      6. Lösung 12.6 (1/2)
      7. Lösung 12.6 (2/2)
      8. Lösung 12.7
      9. Lösung 12.8 (1/2)
      10. Lösung 12.8 (2/2)
      11. Lösung 12.9
      12. Lösung 12.10
      13. Lösung 12.11
      14. Lösung 12.12
      15. Lösung 12.13 (1/2)
      16. Lösung 12.13 (2/2)
      17. Lösung 12.14
      18. Lösung 12.15 (1/5)
      19. Lösung 12.15 (2/5)
      20. Lösung 12.15 (3/5)
      21. Lösung 12.15 (4/5)
      22. Lösung 12.15 (5/5)
      23. Lösung 12.16 (1/2)
      24. Lösung 12.16 (2/2)
      25. Lösung 12.17 (1/3)
      26. Lösung 12.17 (2/3)
      27. Lösung 12.17 (3/3)
      28. Lösung 12.18 (1/2)
      29. Lösung 12.18 (2/2)
  23. Stichwortverzeichnis (1/4)
  24. Stichwortverzeichnis (2/4)
  25. Stichwortverzeichnis (3/4)
  26. Stichwortverzeichnis (4/4)

Product information

  • Title: Java 8 - Das Übungsbuch
  • Author(s): Elisabeth Jung
  • Release date: June 2014
  • Publisher(s): mitp Verlag
  • ISBN: 9783826696480