listen:trennungstrukturdaten:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
listen:trennungstrukturdaten:start [2024/09/27 07:03] – [Klassendiagramm] Martin Pabst | listen:trennungstrukturdaten:start [2024/09/27 08:03] (aktuell) – [Klassendiagramm] Martin Pabst | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
Beim Zeichnen der Klassen- und Objektdiagramme orientieren wir uns an der [[https:// | Beim Zeichnen der Klassen- und Objektdiagramme orientieren wir uns an der [[https:// | ||
- | * {{: | + | * {{: |
- | * {{: | + | * {{: |
- | * {{: | + | * {{: |
- | * {{: | + | * {{: |
- | Bei Aggregation, Komposition und Assoziation ist es oft hilfreich, die **Kardinalität** | + | [[https:// |
+ | Bei Aggregation, | ||
+ | **Vorgehen in Prüfungen (auch Abitur):** \\ | ||
+ | Der Lehrplan unterscheidet die Fälle Aggregation, | ||
+ | **Das Symbol für Vererbung (Dreieckpfeil) wird aber sehr wohl verwendet.** | ||
</ | </ | ||
===== Umsetzung in Java ===== | ===== Umsetzung in Java ===== | ||
- | === Die Klasse | + | === Die Klasse |
Die Klasse '' | Die Klasse '' | ||
<code learnj> | <code learnj> | ||
Zeile 39: | Zeile 43: | ||
<code learnj> | <code learnj> | ||
public class Warteschlange { | public class Warteschlange { | ||
- | private | + | Knoten |
- | + | Knoten ende; | |
} | } | ||
public class Knoten { | public class Knoten { | ||
- | private | + | Knoten nachfolger; |
- | | + | Kunde daten; |
- | + | ||
- | | + | |
- | | + | this.daten = kunde; |
- | } | + | |
} | } | ||
</ | </ | ||
Zeile 145: | Zeile 149: | ||
<script type=" | <script type=" | ||
- | Supermarktkasse | + | Warteschlange |
s.hintenAnstellen(new Kunde(" | s.hintenAnstellen(new Kunde(" | ||
s.hintenAnstellen(new Kunde(" | s.hintenAnstellen(new Kunde(" | ||
Zeile 151: | Zeile 155: | ||
s.hintenAnstellen(new Kunde(" | s.hintenAnstellen(new Kunde(" | ||
- | println(s.getAnzahlIterativ()); | + | println(s.hatKunde(" |
+ | println(s.hatKunde(" | ||
- | println(s.erstenEntnehmen().name); | ||
- | println(s.erstenEntnehmen().name); | ||
- | println(s.erstenEntnehmen().name); | ||
- | + | class Warteschlange | |
- | class Supermarktkasse | + | |
| | ||
| | ||
Zeile 199: | Zeile 200: | ||
int getAnzahlRekursiv() { | int getAnzahlRekursiv() { | ||
if(anfang == null) return 0; | if(anfang == null) return 0; | ||
- | return anfang.getAnzahlRekursiv(); | + | return anfang.getAnzahl(); |
} | } | ||
+ | |||
+ | Kunde gibDenNtenKunden(int n) { | ||
+ | if(n == 0) return anfang.getDaten(); | ||
+ | return anfang.gibDenNtenKunden(n); | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(anfang == null) return false; | ||
+ | return anfang.hatKunde(name); | ||
+ | } | ||
+ | |||
} | } | ||
Zeile 211: | Zeile 223: | ||
} | } | ||
- | | + | boolean hatKunde(String name) { |
+ | if(daten.name == name) return true; | ||
+ | if(nachfolger == null) return false; | ||
+ | return nachfolger.hatKunde(name); | ||
+ | } | ||
+ | |||
+ | int getAnzahl() { | ||
if(nachfolger == null) return 1; | if(nachfolger == null) return 1; | ||
- | return nachfolger.getAnzahlRekursiv() + 1; | + | return nachfolger.getAnzahl() + 1; |
} | } | ||
Zeile 226: | Zeile 244: | ||
Kunde getDaten() { | Kunde getDaten() { | ||
return daten; | return daten; | ||
+ | } | ||
+ | |||
+ | Kunde gibDenNtenKunden(int n) { | ||
+ | if(n == 1) return daten; | ||
+ | if(nachfolger != null) { | ||
+ | | ||
+ | } | ||
+ | |||
+ | // Fehler: n ist zu groß! | ||
+ | return null; | ||
} | } | ||
} | } | ||
Zeile 235: | Zeile 263: | ||
this.name = name; | this.name = name; | ||
} | } | ||
- | } | + | }</ |
- | </ | + | |
</ | </ |
listen/trennungstrukturdaten/start.1727420616.txt.gz · Zuletzt geändert: 2024/09/27 07:03 von Martin Pabst