Java 9 Das Übungsbuch

Über 200 Aufgaben mit vollständigen Lösungen

Elisabeth Jung

Diese Publikation zitieren

Elisabeth Jung, Java 9 Das Übungsbuch (2017), mitp-Verlag, Frechen, ISBN: 9783958456488

1405
Accesses
1
Quotes

Beschreibung / Abstract

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 beginnt mit einer kompakten 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-Version 7 werden im Kapitel 10 behandelt und das Kapitel 11 beschäftigt sich mit den neuen Sprachmitteln von Java 8: Lambdas und Streams.
Kapitel 12 bietet einen fundierten Einblick in die Neuerungen von Java 9 und behandelt die Erweiterungen in diversen APIs, sprachspezifische Erweiterungen, Reactive Streams und nicht zuletzt die Modularisierung der Java-Plattform.
Nach dem Durcharbeiten des Buches verfügen Sie über fundierte Programmierkenntnisse und einen umfangreichen Fundus an Beispielcode.

Aus dem Inhalt:

Klassendefinition und Objektinstanziierung
Java-Standard-Klassen
Abgeleitete Klassen und Vererbung
Abstrakte Klassen und Interfaces
Graphische Programmierung mit AWT und Swing
Die Architektur MVC (Model View Controller) von Swing-Komponenten
Innere Klassen
Generics
Reflection
Typprüfung und Typ-sicherheit in Java
Lambdas
Methoden- und Konstruktor-Referenzen
Funktionale Interfaces
Definition und Nutzung von Streams
Reduktion und Kollektoren
Ergänzungen der Sprache sowie der existierenden APIs mit Java 9
Das neue Modulsystem von Java
Reaktive Programmierung
Die JShell

Beschreibung

Elisabeth Jung ist freie Autorin und wohnhaft in Frankfurt am Main. Nach dem Studium der Mathematik an der Universität Temeschburg in Rumänien hat Elisabeth Jung Grundlagen der Informatik und Fortran unterrichtet. Im Jahr 1982 hat sie bereits eine Aufgabensammlung für Fortran an der gleichen Universität veröffentlicht.

Inhaltsverzeichnis

  • Cover
  • Titel
  • Impressum
  • Inhaltsverzeichnis
  • Einleitung
  • Kapitel 1: Klassendefinition und Objektinstanziierung
  • 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
  • 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
  • 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
  • Kapitel 5: Erweiterte graphische Programmierung
  • 5.1 Der RootPane-Container
  • 5.2 Interne Fenster
  • 5.3 Die Applikation als Auslöser für Zeichenoperationen
  • 5.4 Das Interface Shape
  • 5.5 Praxisnahe Zeichenvorgänge und Eventbehandlungen
  • 5.6 Benutzerdefinierte Event-Objekte und Event-Listener
  • 5.7 Lösungen
  • 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
  • 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
  • 7.2 Innere Klassen am Beispiel von Event-Listener und Event-Adapter
  • 7.3 Weitere Beispiele mit inneren Klassendefinitionen
  • 7.4 Lösungen:
  • 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<E extends Enum<E>>
  • 8.10 Die Interfaces Enumeration<E>, Iterable<T> und Iterator<E> sowie Map<K,V> und Set<E>
  • 8.11 Die Einträge der UIDefaults-Tabelle als Instanz der Klasse Hashtable<Object, Object>
  • 8.12 Die generischen Klassen Class<T> und Constructor<T> und das »dynamische« Erzeugen von Objekten
  • 8.13 Das Reflection-API
  • 8.14 Lösungen
  • Kapitel 9: Exceptions und Errors
  • 9.1 Ausnahmen auslösen
  • 9.2 Ausnahmen abfangen oder weitergeben
  • 9.3 Das Verwenden von finally in der Ausnahmebehandlung
  • 9.4 Ausnahmen manuell auslösen
  • 9.5 Exception-Unterklassen erzeugen
  • 9.6 Ketten von Ausnahmen
  • 9.7 Die Ausnahmen bei einem Wechsel von LookAndFeel-Komponenten
  • 9.8 Lösungen
  • Kapitel 10: Java-Typen
  • 10.1 Typen in Java
  • 10.2 Typprüfung und Typsicherheit mittels Generics
  • 10.3 Subtyping für parametrisierte Typen
  • 10.4 Die extends-Klausel
  • 10.5 Typinferenz für Methoden
  • 10.6 Typinferenz beim Erzeugen von Instanzen eines generischen Typs
  • 10.7 Heap Pollution
  • 10.8 Wildcard-Capture
  • 10.9 Multi-catch-Klausel und verbesserte Typprüfung beim Rethrowing von Exceptions
  • 10.10 Lösungen
  • Kapitel 11: Java 8 Lambdas und Streams
  • 11.1 Mittels anonymer Klassen Code an Methoden übergeben
  • 11.2 Funktionale Interfaces
  • 11.3 Syntax und Deklaration von Lambda-Ausdrücken
  • 11.4 Scoping und Variable Capture
  • 11.5 Methoden- und Konstruktor-Referenzen
  • 11.6 Default-Methoden und statische Methoden in Interfaces
  • 11.7 Das neue Interface Stream
  • 11.8 Die forEach-Methoden von Iterator, Iterable und Stream
  • 11.9 Die Default-Methoden des Map-Interface
  • 11.10 Das Interface Collector und die Klasse Collectors. Reduktion mittels Methoden von Streams und Kollektoren
  • 11.11 Parallele Streams
  • 11.12 Die Bulk-Operationen der Klasse ConcurrentHashMap
  • 11.13 Lösungen
  • Kapitel 12: Die neuen Features von Java 9
  • 12.1 Einführung
  • 12.2 Factory-Methoden in Collections
  • 12.3 Stream-Erweiterungen
  • 12.4 Die map() und flatMap()-Methoden von Stream und Optional
  • 12.5 Optional-Erweiterungen
  • 12.6 Kollektoren in Java 9
  • 12.7 Process-API-Erweiterungen
  • 12.8 Reactive Programming
  • 12.9 Das Java-Modulsystem
  • 12.10 Platform-Logging
  • 12.11 Multi-Resolution Images
  • 12.12 Die Java-Shell (JShell)
  • 12.13 Andere Änderungen aus dem JDK 9
  • 12.14 Java 9 Internals
  • 12.15 Lösungen
  • Stichwortverzeichnis

Mehr von dieser Serie

    Ähnliche Titel

      Mehr von diesem Autor