Podcast
Questions and Answers
Was war das Thema der letzten Vorlesungswoche?
Was war das Thema der letzten Vorlesungswoche?
Vererbung
Welche der folgenden Elemente gehören zur Vererbung?
Welche der folgenden Elemente gehören zur Vererbung?
Jedes Objekt in Java erbt von der Superklasse Object
.
Jedes Objekt in Java erbt von der Superklasse Object
.
True
Was ist der Unterschied zwischen einem Getter und einem Setter?
Was ist der Unterschied zwischen einem Getter und einem Setter?
Signup and view all the answers
Wie wird in Java die Erbschaft einer Klasse von einer anderen Klasse gekennzeichnet?
Wie wird in Java die Erbschaft einer Klasse von einer anderen Klasse gekennzeichnet?
Signup and view all the answers
Welche Methode in der Klasse Rectangle
muss überschrieben werden (override) und warum?
Welche Methode in der Klasse Rectangle
muss überschrieben werden (override) und warum?
Signup and view all the answers
Welche Vorteile bringen Interfaces?
Welche Vorteile bringen Interfaces?
Signup and view all the answers
Interfaces können von anderen Interfaces erben?
Interfaces können von anderen Interfaces erben?
Signup and view all the answers
Welche wichtigen Interfaces wurden im Zusammenhang mit der Verwendung von Interfaces vorgestellt?
Welche wichtigen Interfaces wurden im Zusammenhang mit der Verwendung von Interfaces vorgestellt?
Signup and view all the answers
Was wird durch den Einsatz von Generics ermöglicht?
Was wird durch den Einsatz von Generics ermöglicht?
Signup and view all the answers
Generics können nur mit einem einzigen Typ parametrisiert werden.
Generics können nur mit einem einzigen Typ parametrisiert werden.
Signup and view all the answers
Was ist ein generischer Typ?
Was ist ein generischer Typ?
Signup and view all the answers
Warum ist der Einsatz von Generics im Vergleich zur Verwendung von Object
vorteilhaft?
Warum ist der Einsatz von Generics im Vergleich zur Verwendung von Object
vorteilhaft?
Signup and view all the answers
Was ist der Zweck des Schlüsselworts extends
in der Definition eines generischen Typs?
Was ist der Zweck des Schlüsselworts extends
in der Definition eines generischen Typs?
Signup and view all the answers
Welche Art von Fehler führt in dem Beispiel aus der Vorlesung zu einem Compile-Fehler?
Welche Art von Fehler führt in dem Beispiel aus der Vorlesung zu einem Compile-Fehler?
Signup and view all the answers
Was sind die besonderen Vorteile der Verwendung von Interfaces?
Was sind die besonderen Vorteile der Verwendung von Interfaces?
Signup and view all the answers
Study Notes
Java Programmierung 1: Interfaces und Generics
- Thema: Programmierung Java 1, Interfaces und Generics
- Referent: Dr. Robert Zeranski, DAKO GmbH, Jena
- Fachhochschule: Erfurt University of Applied Sciences, Angewandte Informatik
Vorherige Woche (Vererbung)
- Vererbung: Super- und Subklassen, abstrakte Klassen, finale Elemente, Methoden überschreiben sowie implizites und explizites Casting.
- Objekt: Die Superklasse mit Eigenschaften, von der jedes Java-Objekt erbt, sowie ihre wichtigen Methoden.
Der Klassiker (Beispiel)
- Bild: Illustration eines Quadrats und Rechtecks.
- Beispiel: Die Folie stellt ein einfaches Beispiel zur Veranschaulichung von geometrischen Formen dar. Hier wird auf den Zusammenhang zwischen Rektangel und Quadrat eingegangen.
Rectangle & Square: Vererbung?
- Bild: Meme aus Simpsons, kommentiert.
- Thema: Frage nach dem Sinn der Vererbung zwischen Rectangle und Square und dem damit verbundenen Programmierbeispiel.
Rectangle erbt von Square I (Details)
- Klasse Square: Deklaration der Länge (Länge des Quadrats), Getter und Setter für Länge mit Methode calculateArea() und calculatePerimeter(), calculateDiagonalLength().
- Zugriffsmodifikatoren (private): Felddeklarationen innerhalb der Klasse, die vom externen Zugriff geschützt werden.
- Methoden (Getter): Zugriffsmethoden, um die Länge (des Quadrats) zu erhalten.
- Methoden (Setter): Änderungsmethoden zur Modifikation der Länge (des Quadrats).
- Methoden: Methoden zur Berechnung von Fläche und Umfang sowie der Diagonalenlänge.
Rectangle erbt von Square II (Details)
- Klasse Rectangle: Erweiterung der Klasse Square mit einer weiteren Eigenschaft - der Breite.
- Konstruktor: Der Konstruktor ruft den Konstruktor der Oberklasse (Square) auf. Berechnung von Fläch und Umfang sowie Diagonalenlänge angepasst an die Breite.
- Methoden überschreiben: Die Methoden calculateArea() , calculatePerimeter() und calculateDiagonalLength() werden überschrieben, um die neuen Berechnungen für Rechtecke zu berücksichtigen, um die neue Berechnung zu berücksichtigen.
Rectangle erbt von Square III und weitere Beispiele
- In diesem Abschnitt werden Instanzen von Rectangle und Square gezeigt, sowie diverse Berechnungen anhand von Beispielen.
- Objekt-Zugriff: Erklärung, dass ein Objekt die Methode eines 'Eltern'-Objekts nicht direkt aufrufen kann.
- Berechnungen von Fläche und Umfang: Demonstration der Berechnung von Flächen- und Umfangswerten für Rechtecke und Quadrate.
Square erbt von Rectangle I (Details)
- Klasse Rectangle: Implementierung des Interface 'IQuadrilateral' mit public Methoden 'calculatePerimeter', 'calculateArea', 'calculateLength', 'setLength', 'setWidth'.
- Schlüsselwort 'private': Felder innerhalb der Klasse, die vom externen Zugriff geschützt werden.
- Getter und Setter: Zugriffsmethoden, um die entsprechenden Attribute zu erhalten oder zu ändern.
- Methode 'calculateDiagonalLength': Berechnet die Länge der Diagonalen.
Square erbt von Rectangle II
- Klasse Square: Erweiterung von 'Rectangle' inklusive Implementierung des Interfaces 'IQuadrilateral'.
- Konstruktor: Der Konstruktor ruft, nach Implementierung, den 'Oberklassen-Konstruktor' auf (Rectangle).
- Methoden überschreiben: Die Methoden 'setLength' und 'setWidth' werden überschrieben.
- Seitenlänge: Erklärung, dass die Seitenlänge gleich bleiben muss, wenn ein Quadrat als Objekt definiert wird.
Square erbt von Rectangle III und weitere Beispiele
- Hier werden die Berechnungen und die Anwendung der ererbten und überladenen Methoden vorgestellt.
- Ausgabe: Die Ausgabe der Berechnungen für verschiedene Objekte.
Interfaces (Allgemein)
- Interfaces: Das Interface dient als Vertrag oder Schablone und beschreibt, welche Methoden eine Klasse implementieren muss.
- Implementierung: Eine Klasse implementiert ein Interface, wenn sie alle darin definierten Methoden umsetzt.
- Details der Implementierung: Details der Implementierung sind nicht relevant - nur die Existenz der Methoden zählt.
- Beispiel: Das Interface 'IQuadrilateral' beschreibt Methoden für Fläche und Umfang.
Interfaces II (Details)
- Referenztypen: Interfaces sind Referenztypen.
- Kein Objekt: Interfaces können keine Instanzen erstellen.
- Implementierung von Interfaces: Klassen können mehrere Interfaces implementieren.
- Default-Methoden: Seit Java 8 gibt es Default-Methoden in Interfaces, die eine Implementierung vorsehen.
- Vererbung von Interfaces: Interfaces können andere Interfaces erweitern.
Interfaces III (Definition)
-
Definition: Interfaces werden mit dem Schlüsselwort "interface" definiert und folgen der CamelCase-Konvention (z.B.
IQuadrilateral
). - Implementierung: Eine Klasse implementiert ein Interface mit dem Schlüsselwort "implements".
- Beispiele: Beispiele für die Definition und Implementierung eines Interfaces.
Interfaces IV (default, mehrere, Vererbung)
-
default
-Methoden: Das Schlüsselwortdefault
erlaubt, die Implementierung einer Methode in einem Interface anzugeben, um die Implementierung der Methode in Unterklassen zu vereinfachen. - Mehrere Interfaces: Eine Klasse kann mehrere Interfaces gleichzeitig implementieren.
- Vererbung: Eine Klasse, die ein Interface implementiert, vererbt diese Implementierung an Unterklassen.
Interfaces und Klassen (Quadrilateral und Square/Rectangle)
-
Interface IQuadrilateral: Definiert die Methode
calculatePerimeter
undcalculateArea
für ein Viereck. - Klasse Square: Implementiert das Interface IQuadrilateral und berechnet den Umfang und die Fläche eines Quadrats.
- Klasse Rectangle: Implementiert das Interface IQuadrilateral und berechnet den Umfang und die Fläche eines Rechtecks.
- Beispiel: Verwendung von Interfaces bei der Berechnung von Flächen- und Umfangswerten für Quadrate und Rechtecke.
Generics
- Generics: Generics erlauben den Typsicherheit bei der Definition und Nutzung von Klassen, Interfaces und Methoden.
- Zusammenspiel von Datentypen: Generics ermöglichen flexiblere Strukturen, indem der Typ erst bei Bedarf definiert wird.
Generics II (Beispiel)
- Nicht generische Klasse: Das Beispiel zeigt eine nicht generische Klasse Box sowie ihre Verwendung.
- Laufzeitfehler: Gefahr von Laufzeitfehern aufgrund von Typkonvertierungen (Casting).
Generics III (generische Klasse)
-
Generische Klasse GenericBox: Beispiel für eine generische Klasse
GenericBox<T>
damit keine Fehler bei der Typbestimmung auftreten.
Generics IV (Mehrere Typen)
-
Mehrere Typen: Generics können mehr als einen Typ verwenden (
Pair<K, V>
). -
Beispiel: Das Beispiel
Pair<String, Integer>
zeigt die Verwendung von zwei Typen.
Generics V (Typen mit Generics darstellen)
- Typen mit Generics: Die Verwendung von Generics um unterschiedliche Typen zu bearbeiten.
Wichtige Interfaces (weitere Beispiele)
-
Comparable:
compareTo
-Methode zum Vergleich von Objekten. -
Cloneable:
clone
-Methode zur Erstellung von Kopien. - Serializable: Objekte zur Serialisierung und Deserialisierung.
-
Runnable:
run
-Methode für parallele Ausführungen. -
Iterable:
Iterator
-Methode für iterative Verarbeitung von Objekten.
Zusammenfassung Seiten 1 bis 26
- Die Präsentation skizziert die Konzepte von Vererbung in Java, demonstriert deren praktische Anwendung und präsentiert umfangreiche Beispiele.
- Darüber hinaus zeigt sie die Implementierung, die Verwendung von Schnittstellen und Generics in Java-Programmen.
- Es werden sowohl einfache als auch komplexere Programmierbeispiele und theoretische Erläuterungen präsentiert, um ein umfassendes Verständnis zu gewährleisten.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
In diesem Quiz werden die Konzepte von Interfaces und Generics in der Java Programmierung behandelt. Sie können Ihr Wissen über Vererbung, abstrakte Klassen und die Bedeutung von Super- und Subklassen testen. Außerdem werden einfache geometrische Formen wie Rechtecke und Quadrate vorgestellt, um die Zusammenhänge zu verdeutlichen.