Modellierung und Simulation - Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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 ''Fahrzeug'' erbt.
 
=== Eigenschaften ===
 
Marke


=== Anforderungen ===
=== Anforderungen ===
{| class="wikitable"
{| class="wikitable"
|-
|-
| Eigenschaft: || <code>Geschwindigkeit</code> || nur innerhalb der Klasse zugänglich
| Eigenschaft: || <code>Marke</code> || nur innerhalb der Klasse zugänglich
|-
|-
| Konstruktor: || <code>Fahrzeug()</code>|| setzt die Geschwindigkeit
| 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:
|}
|}


Konstruktor:
=== Beispielausgabe ===
setzt Geschwindigkeit und Marke
*Auto: BMW
Implementiere:
*Geschwindigkeit: 180 km/h
''info()''
 
==== Beispielausgabe ====
Auto: BMW
Geschwindigkeit: 180 km/h


=== 3. Klasse „Fahrrad“ ===
== 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