Modellierung und Simulation - Objektorientierte Programmierung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
| '''Termin:''' || 23.05.2025
| '''Termin:''' || 23.05.2025
|}
|}
= Lernziel =


Nach der Bearbeitung können die Studierenden:
* abstrakte Klassen in MATLAB<sup>®</sup> 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 ===
{| class="wikitable"
|-
| Eigenschaft
: || ''Geschwindigkeit'' || nur innerhalb der Klasse zugänglich
|-
| Konstruktor: || Beispiel || setzt die Geschwindigkeit
|-
| Methode: || ''getGeschwindigkeit()'' || Beispiel
|-
| Abstrakte Methode: || ''info()'' || Beispiel
|}
== 2. Klasse „Auto“ ==
Erstelle eine Klasse '''Auto''', die von ''Fahrzeug'' erbt.
==== Eigenschaften ====
Marke
==== Anforderungen ====
Konstruktor:
setzt Geschwindigkeit und Marke
Implementiere:
''info()''
==== 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
<!--
=Aufgabe 9.1 Strukturen und Klassen=
=Aufgabe 9.1 Strukturen und Klassen=
Erstellen Sie den <code>struct person</code> mit den Datenfeldern:
Erstellen Sie den <code>struct person</code> mit den Datenfeldern:
Zeile 113: Zeile 235:
</source>
</source>
|}
|}
 
-->


----
----
→ [[MATLAB-Befehle| MATLAB<sup>®</sup> Befehlsübersicht]]<br>
→ [[MATLAB-Befehle| MATLAB<sup>®</sup> Befehlsübersicht]]<br>
→ zurück zum Hauptartikel: [[BSE Modellierung und Simulation - SoSe26]]
→ zurück zum Hauptartikel: [[BSE Modellierung und Simulation - SoSe26]]

Version vom 21. Mai 2026, 13:56 Uhr

Autor: Prof. Dr.-Ing. Schneider
Termin: 23.05.2025

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: Beispiel setzt die Geschwindigkeit
Methode: getGeschwindigkeit() Beispiel
Abstrakte Methode: info() Beispiel


2. Klasse „Auto“

Erstelle eine Klasse Auto, die von Fahrzeug erbt.

Eigenschaften

Marke

Anforderungen

Konstruktor: setzt Geschwindigkeit und Marke Implementiere: info()

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