anhang:generics:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anhang:generics:start [2024/12/06 07:57] – Martin Pabst | anhang:generics:start [2024/12/13 08:28] (aktuell) – [Aufgabe] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Generische Klassen ====== | ====== Generische Klassen ====== | ||
- | <WRAP center round info 80%> | + | ===== Problemstellung ===== |
+ | <WRAP center round tip 80%> | ||
Stellen Sie sich eine Klasse '' | Stellen Sie sich eine Klasse '' | ||
<code java> | <code java> | ||
Zeile 9: | Zeile 10: | ||
</ | </ | ||
Die Klasse '' | Die Klasse '' | ||
- | Das ist aber **ungünstig**: | + | Das ist aber **ungünstig**: |
+ | <code java> | ||
+ | Liste kundenliste = new Liste(); | ||
+ | </ | ||
+ | Sie würden | ||
<code java> | <code java> | ||
Kunde k = kundenliste.getFirst(); | Kunde k = kundenliste.getFirst(); | ||
</ | </ | ||
- | Der Compiler meldet in diesem Fall einen Fehler, da er nicht weiß, dass in die '' | + | Der Compiler meldet in diesem Fall aber einen Fehler, da er nicht weiß, dass in die '' |
+ | Wir brauchen eine Möglichkeit, | ||
+ | </ | ||
+ | |||
+ | ===== Generics ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Viele Programmiersprachen bieten Möglichkeiten der [[https:// | ||
+ | <code java> | ||
+ | class Liste< | ||
+ | T anfang; | ||
+ | void add(T element){ ... } | ||
+ | T getFirst(){ ... } | ||
+ | } | ||
+ | </ | ||
+ | Eine Liste zum Speichern von '' | ||
+ | <code java> | ||
+ | Liste< | ||
+ | // Wegen Type-inference geht auch: List< | ||
+ | </ | ||
+ | Jetzt ist alles wie gewünscht: '' | ||
+ | <code java> | ||
+ | Kunde k = kundenliste.getFirst(); | ||
+ | </ | ||
+ | liefert keinen Fehler mehr. | ||
+ | </ | ||
+ | |||
+ | ===== Aufgabe ===== | ||
+ | <WRAP center round todo 80%> | ||
+ | a) Schreiben Sie eine generische Klasse '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | b) Schreiben Sie für jede der Methoden oben mindestens einen automatisierten [[anhang: | ||
</ | </ | ||
+ | |||
+ | [[.generics: | ||
+ | |||
+ | ===== Bounded type parameters ===== | ||
+ | |||
+ | |||
+ | |||
anhang/generics/start.1733471842.txt.gz · Zuletzt geändert: 2024/12/06 07:57 von Martin Pabst