Nachricht für neue Nutzer.
Nachricht für engagierte Nutzer.

Benutzer:Kwschneider/Softwareentwicklung/Grundlagen/Einführung in objektorientierte Programmierung (OOP)

Aus ZUM-Unterrichten
< Benutzer:Kwschneider
Version vom 24. Februar 2026, 14:54 Uhr von Kwschneider (Diskussion | Beiträge) (Quiz ergänzt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

7. Einführung in objektorientierte Programmierung (OOP)

Klassen und Objekte

Klassen und Objekte sind ein zentraler Bestandteil der objektorientierten Programmierung, die ihr zum Beispiel mit Python kennenlernen werdet. In Python kann man mit Klassen Vorlagen für sogenannte "Objekte" erstellen – das sind Dinge oder Begriffe aus der echten Welt, die in einem Programm abgebildet werden. Eine Klasse ist wie eine Bauanleitung: Sie beschreibt, welche Eigenschaften (Attribute) und Fähigkeiten (Methoden) ein Objekt haben soll. Wenn ihr zum Beispiel eine Klasse "Auto" erstellt, könnt ihr darin festlegen, dass jedes Auto eine bestimmte Farbe und eine maximale Geschwindigkeit hat. Aus dieser Klasse könnt ihr dann beliebig viele einzelne Autos – also Objekte – erzeugen, zum Beispiel ein rotes Auto oder ein blaues Auto. Der grosse Vorteil: Ihr könnt mit Klassen und Objekten übersichtliche und strukturierte Programme schreiben. Anstatt für jedes Auto alles einzeln zu programmieren, legt ihr einmal eine Klasse fest und erstellt daraus so viele Autos (Objekte), wie ihr braucht. Das macht euren Code einfacher, wiederverwendbar und leichter zu pflegen.

Attribute und Methoden

Stellt euch vor, ihr wollt in Python eine Klasse für „Auto“ schreiben. Damit ein Auto im Programm sinnvoll funktioniert, braucht es Eigenschaften und Fähigkeiten – in der objektorientierten Programmierung nennt man diese Eigenschaften „Attribute“ und die Fähigkeiten „Methoden“. Ein Attribut ist zum Beispiel die Farbe oder die maximale Geschwindigkeit eines Autos. Ihr könnt also in eurer Klasse festlegen, dass jedes Auto eine Farbe (zum Beispiel „rot“ oder „blau“) und eine Höchstgeschwindigkeit besitzt. In Python sieht das dann so aus: Mit dieser Klasse könnt ihr jetzt verschiedene Autos erzeugen: Methoden sind Funktionen, die zu einer Klasse gehören. Sie geben an, was ein Objekt tun kann. Zum Beispiel könnt ihr für die Klasse Auto eine Methode erstellen, mit der das Auto hupt: def hupen(self):

   print("Hup! Hup!")

Jetzt könnt ihr jedes Auto im Programm „hupen“ lassen: Zusammengefasst: Attribute speichern Informationen über das Objekt, Methoden sorgen dafür, dass das Objekt etwas tun kann. Mit Klassen, Attributen und Methoden könnt ihr in Python übersichtlichen und wiederverwendbaren Code schreiben – und genau das braucht ihr später auch für grössere Projekte.

Vererbung und Polymorphie (Grundlagen)

Vererbung bedeutet, dass eine neue Klasse (die sogenannte „Kindklasse“) die Eigenschaften und Methoden einer bestehenden Klasse (der „Elternklasse“) übernehmen kann. Das spart viel Schreibarbeit und macht deinen Code übersichtlicher. Zum Beispiel: Wenn du eine Klasse „Fahrzeug“ hast, kannst du eine neue Klasse „Auto“ erstellen, die alles von „Fahrzeug“ erbt und zusätzlich eigene Eigenschaften oder Methoden bekommt. So musst du nicht alles doppelt schreiben. Polymorphie heisst, dass ein Objekt – zum Beispiel ein „Auto“ oder ein „Motorrad“ – zwar unterschiedlich aussehen kann, aber gleich angesprochen werden kann. Du kannst also verschiedene Objekte mit der gleichen Methode wie zum Beispiel .hupen() verwenden, und jedes Objekt reagiert auf seine eigene Weise. Das macht Programme flexibel und leicht erweiterbar.

Praxisbeispiel: Mini-Projekt mit OOP

Aufgabenstellung: OOP-Miniprojekt „Fahrzeugverwaltung“

Stellt euch vor, ihr arbeitet bei einem kleinen Autoverleih. Eure Aufgabe ist es, ein einfaches Verwaltungssystem für verschiedene Fahrzeuge zu programmieren. Ihr sollt eine Übersichts-Liste aller Fahrzeuge führen können, neue Fahrzeuge hinzufügen und bestimmte Aktionen mit ihnen durchführen. Nutzt dafür die Prinzipien der objektorientierten Programmierung (OOP): Klassen, Attribute, Methoden, Vererbung und Polymorphie.

  • Erstellt eine Elternklasse Fahrzeug mit Attributen wie marke, modell und baujahr sowie einer Methode beschreibung_ausgeben().
  • Leitet davon zwei Kindklassen ab: Auto (mit zusätzlichem Attribut anzahl_tueren) und Motorrad (mit zusätzlichem Attribut hat_beiwagen).
  • Implementiert für beide Kindklassen eigene hupen()-Methoden, die je nach Fahrzeugtyp unterschiedlich klingen.
  • Erstellt eine Liste mit mehreren Fahrzeugen und lasst alle Fahrzeuge ihre Beschreibung ausgeben und hupen.

Quiz

Was ist der hauptsächliche Vorteil von Objektorientierung bei der Entwicklung von Programmen? (!Komplexität wird erhöht) (Wiederverwendbarkeit des Codes) (!Programme laufen schneller) (!Es gibt keine Vorteile)

Was ist der Unterschied zwischen einer Klasse und einem Objekt? (!Eine Klasse ist eine Instanz, ein Objekt ist eine Vorlage) (Eine Klasse ist eine Vorlage, ein Objekt ist eine Instanz) (!Es gibt keinen Unterschied) (!Ein Objekt kann Methoden definieren, eine Klasse nicht)

Welche der folgenden Aussagen trifft auf Vererbung zu? (!Nur Methoden, aber keine Attribute können vererbt werden) (Ein Kind-Objekt hat Zugriff auf die Attribute und Methoden der Elternklasse) (!Vererbung ist nur in Java möglich) (!Vererbung bedeutet, dass ein Objekt mehrere Klassen gleichzeitig sein kann)

Was ist ein typischer Ansatz zur praxisorientierten Vermittlung von Programmierkenntnissen? (!Nur Theorie vermitteln) (Viele praktische Übungen und kleine Projekte) (!Abschlussprüfung ohne Vorbereitung) (!Nur Frontalunterricht)