Modellierung und Simulation - Objektorientierte Programmierung: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 30: | Zeile 30: | ||
== 2. Klasse „Auto“ == | == 2. Klasse „Auto“ == | ||
Erstelle eine Klasse <code>Auto</code>, die von <code>Fahrzeug</code> erbt. | |||
Erstelle eine Klasse <code>Auto</code>, die von | |||
=== Anforderungen === | === Anforderungen === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| Eigenschaft: || <code> | | Eigenschaft: || <code>Marke</code> || nur innerhalb der Klasse zugänglich | ||
|- | |- | ||
| Konstruktor: || <code> | | Konstruktor: || <code>Auto()</code>|| setzt Geschwindigkeit und Marke | ||
|- | |- | ||
| Methode: || <code>getGeschwindigkeit()</code> || liest die Geschwindigkeit aus | | Methode: || <code>getGeschwindigkeit()</code> || liest die Geschwindigkeit aus | ||
| Zeile 49: | Zeile 44: | ||
|} | |} | ||
=== Beispielausgabe === | |||
*Auto: BMW | |||
*Geschwindigkeit: 180 km/h | |||
Auto: BMW | |||
Geschwindigkeit: 180 km/h | |||
== 3. Klasse „Fahrrad“ == | |||
Erstelle eine Klasse '''Fahrrad''', die ebenfalls von ''Fahrzeug'' erbt. | Erstelle eine Klasse '''Fahrrad''', die ebenfalls von ''Fahrzeug'' erbt. | ||
Version vom 21. Mai 2026, 15:16 Uhr
| Autor: | Prof. Dr.-Ing. Schneider |
| Termin: | 22.05.2026 |
Lernziel
Nach der Bearbeitung können die Studierenden:
- abstrakte Klassen in MATLAB® erstellen
- Vererbung anwenden
- private/protected Eigenschaften unterscheiden
- Polymorphismus praktisch einsetzen
- ein einfaches OOP-System strukturieren
Aufgabenstellung
Aufgabe 8.1 Abstrakte Klasse „Fahrzeug“
Erstelle eine abstrakte Klasse Fahrzeug.
Anforderungen
| Eigenschaft: | Geschwindigkeit |
nur innerhalb der Klasse zugänglich |
| Konstruktor: | Fahrzeug() |
setzt die Geschwindigkeit |
| Methode: | getGeschwindigkeit() |
liest die Geschwindigkeit aus |
| Abstrakte Methode: | info() |
liest die Informationen |
2. Klasse „Auto“
Erstelle eine Klasse Auto, die von Fahrzeug erbt.
Anforderungen
| Eigenschaft: | Marke |
nur innerhalb der Klasse zugänglich |
| Konstruktor: | Auto() |
setzt Geschwindigkeit und Marke |
| Methode: | getGeschwindigkeit() |
liest die Geschwindigkeit aus |
| Abstrakte Methode: | info() |
liest die Informationen |
Beispielausgabe
- Auto: BMW
- Geschwindigkeit: 180 km/h
3. Klasse „Fahrrad“
Erstelle eine Klasse Fahrrad, die ebenfalls von Fahrzeug erbt.
Eigenschaften
Typ (z. B. Mountainbike, Rennrad)
Anforderungen
Konstruktor: setzt Geschwindigkeit und Typ Implementiere: info()
Beispielausgabe
Fahrrad: Mountainbike Geschwindigkeit: 25 km/h
4. Hauptprogramm (Polymorphismus)
Erstelle ein Skript main.m.
Aufgaben
Erzeuge: 1 Auto 1 Fahrrad Speichere beide in einer Liste / einem Array Rufe für jedes Objekt die Methode info() auf
💡 Zusatzaufgabe (optional)
a) Klasse „E-Bike“
Erweitere das System um eine Klasse E-Bike:
zusätzliche Eigenschaft: Akkukapazität überschreibt: info()
b) Kapselung erweitern
Setze Geschwindigkeit auf private Erstelle Methode: setGeschwindigkeit(v) Validierung: Geschwindigkeit darf nicht negativ sein
🧠 Leitfragen
Warum ist die Klasse Fahrzeug abstrakt? Wo wird Vererbung im Code sichtbar? Was bedeutet Polymorphismus im Hauptprogramm? Warum ist Kapselung sinnvoll? Was passiert ohne Getter/Setter?
📊 Erwartetes Ergebnis (Polymorphismus)
fahrzeuge = [auto, fahrrad];
for k = 1:length(fahrzeuge) fahrzeuge(k).info(); end
→ gleiche Methode info(), aber unterschiedliche Ausgabe
🧾 Lernziel
Nach der Bearbeitung können die Studierenden:
abstrakte Klassen in MATLAB erstellen Vererbung anwenden private/protected Eigenschaften unterscheiden Polymorphismus praktisch einsetzen ein einfaches OOP-System strukturieren
→ MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: BSE Modellierung und Simulation - SoSe26