Fortgeschrittene Objektorientierte Programmierung - Java Generics

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/19

flashcard set

Earn XP

Description and Tags

Diese Flashcards decken die wesentlichen Konzepte der parametrischen Polymorphie (Generics) in Java ab, einschließlich Typparametern, Schranken, Varianzregeln, Wildcards und deren Einschränkungen.

Last updated 11:59 AM on 7/15/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

20 Terms

1
New cards

Subtype-Polymorphie

Die Eigenschaft, dass eine für einen Typ XX definierte Operation automatisch auch auf alle Untertypen von XX anwendbar ist (11 Implementierung für nn Typen).

2
New cards

Parametrische Polymorphie

Auch als Generizität bezeichnet; ein Konzept, bei dem Typen (Klassen oder Interfaces) und Operationen für unterschiedliche tatsächliche Typen ohne Neuimplementierung parametrisiert werden können.

3
New cards

Zuweisungskompatibilität bei Subtype-Polymorphie

Werte eines Typs XX können anstelle von Werten eines beliebigen Obertyps Y:>XY :> X verwendet werden.

4
New cards

Typvariable

Ein unqualifizierter Bezeichner (z. B. EE), der mit einem Typparameter eingeführt wird und einen speziellen Referenztyp innerhalb des Sichtbarkeitsbereichs der deklarierenden Klasse darstellt.

5
New cards

Typargument

Ein Referenztyp (tatsächlicher Typparameter), der im Rahmen eines parametrisierten Typs für eine Typvariable angegeben wird, wie z. B. Integer\text{Integer} in Pair<Integer>\text{Pair<Integer>}.

6
New cards

Upper Bound (Obere Schranke) uu

Der allgemeinsteste zulässige Typ für einen Typparameter EE. Standardmäßig ist dies Object\text{Object}. Es gilt für jedes zulässige Typargument xx, dass u:>xu :> x sein muss.

7
New cards

Lower Bound (Untere Schranke) ll

Der speziellste zulässige Typ für einen Typparameter EE. Grundsätzlich ist dies der Null-Typ, der nur die Null-Referenz enthält. Es gilt x:>lx :> l.

8
New cards

Invarianz (Java Generics)

Ein parametrisierter Typ A<E>A<E> ist nur dann Untertyp eines anderen parametrisierten Typs B<F>B<F>, wenn AA Untertyp von BB ist und die Typargumente EE und FF identisch sind.

9
New cards

Kovarianz

Die theoretische Eigenschaft, dass die Typkompatibilität einer Spezialisierung des Typargumentes in gleicher Richtung folgt (X<:YC<X><:C<Y>X <: Y \rightarrow C<X> <: C<Y>). Java Generics sind nicht kovariant, um Laufzeit-Typfehler zu vermeiden.

10
New cards

Kontravarianz

Die theoretische Eigenschaft, dass die Typkompatibilität einer Spezialisierung des Typargumentes in entgegengesetzter Richtung folgt (X<:YC<X>:>C<Y>X <: Y \rightarrow C<X> :> C<Y>).

11
New cards

Raw Type

Die Angabe eines generischen Typs ohne Typargumente (z. B. List\text{List} statt List<Integer>\text{List<Integer>}). Dies dient der Kompatibilität zu altem Code und führt zu einer Compiler-Warnung.

12
New cards

Wildcard (String?String ?)

Stellt einen unbekannten Referenztyp (eine Menge von Typen) dar. Ein mit einer Wildcard parametrisierter Typ fungiert als Obertyp für eine Menge von parametrisierten Typen.

13
New cards

Upper Bounded Wildcard (?extendsT? extends T)

Eine Wildcard, die alle Typen akzeptiert, die Untertypen von TT sind (einschließlich TT selbst). Sie ermöglicht kovariante Zuweisungen, wobei Wertentnahmen sicher sind.

14
New cards

Lower Bounded Wildcard (?superT? super T)

Eine Wildcard, die alle Typen akzeptiert, die Obertypen von TT sind (einschließlich TT selbst). Sie ermöglicht kontravariante Zuweisungen, wobei Wertübergaben sicher sind.

15
New cards

Typinferenz (Type Inference)

Ein Mechanismus, bei dem der Compiler die Typargumente einer generischen Methode automatisch aus den tatsächlichen Methodenargumenten ableitet, sodass diese beim Aufruf nicht explizit angegeben werden müssen.

16
New cards

Kovarianz von Arrays

In Java gilt für Arrays: Wenn X<:YX <: Y, dann ist X[]<:Y[]X[] <: Y[]. Dies ermöglicht potenzielle Typfehler zur Laufzeit (ArrayStoreException\text{ArrayStoreException}).

17
New cards

Unchecked Conversion

Eine Konvertierung, die stattfindet, wenn ein Raw Type einem parametrisierten Typ zugewiesen wird (z. B. List<Integer> l = new ArrayList()\text{List<Integer> l = new ArrayList()}), was eine Compiler-Warnung auslöst.

18
New cards

Einschränkung: Primitive Typen in Generics

Java Generics lassen nur Referenztypen als Typargumente zu; primitive Typen wie int\text{int} sind unzulässig (z. B. ist List<int>\text{List<int>} nicht erlaubt).

19
New cards

Einschränkung: Statischer Kontext

Die Verwendung einer Typvariable in einem statischen Kontext (statische Methoden, Variablen oder Initializer-Blöcke) ist innerhalb einer generischen Klasse nicht zulässig.

20
New cards

Sichtbarkeitsbereich einer Typvariable

Bei generischen Methoden beschränkt sich der Sichtbarkeitsbereich der deklarierten Typvariable auf die gesamte Methodendeklaration (Typparameter, Rückgabewert, Parameter und Rumpf).