Modellierung und Simulation - Objektorientierte Programmierung

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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

Aufgabe 8.2 Klasse „Auto“

Erstelle eine Klasse Auto, die von Fahrzeug erbt.

Anforderungen

Eigenschaft: Marke
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

Aufgabe 8.3 Klasse Fahrrad

Erstelle eine Klasse Fahrrad, die ebenfalls von Fahrzeug erbt.

Anforderungen

Eigenschaft: Typ nur innerhalb der Klasse zugänglich, z. B. Mountainbike, Rennrad
Konstruktor: Fahrrad() setzt Geschwindigkeit und Typ
Methode: getGeschwindigkeit() liest die Geschwindigkeit aus
Abstrakte Methode: info() liest die Informationen

Beispielausgabe

  • Fahrrad: Mountainbike
  • Geschwindigkeit: 25 km/h

Aufgabe 8.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

Aufgabe 8.5 Zusatzaufgabe

Aufgabe 8.5.1 Klasse „E-Bike“

Erweitere das System um eine Klasse E-Bike:

Zusätzliche Eigenschaft:

  • Akkukapazität
  • überschreibt: info()

Aufgabe 8.5.2 Kapselung erweitern

  • Setze Geschwindigkeit auf private
  • Erstelle Methode: setGeschwindigkeit(v)
  • Validierung: Geschwindigkeit darf nicht negativ sein

Lernzielkontrolle

Die Klasse Fahrzeug ist abstrakt, weil sie kein konkretes Objekt beschreibt, sondern nur eine allgemeine Vorlage darstellt.
  • Ein Fahrzeug an sich existiert nicht in der Realität als eindeutiges Objekt.
  • Es dient nur als gemeinsame Struktur für spezialisierte Klassen wie Auto oder Fahrrad.
  • Die abstrakte Methode info() erzwingt, dass jede Unterklasse ihre eigene Umsetzung liefert.

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