Presentations
Templates
Features
Teams
Pricing
Log in
Sign up
Log in
Sign up
Menu
Lektion 8: Objektorientierte Programmierung
Was ist OOP und warum braucht man es?
Die drei Säulen der OOP
Programmieren mit Klasse(n)
Aus Klassen werden Objekte
Die Rolle des Konstruktors
Members implementieren
Klassen erben von anderen Klassen
Polymorphie (oder das, was Python darunter versteht)
Was ist OOP und warum braucht man es? (Teil 1)
OOP = Objektorientierte Programmierung
Entstand Anfang der 80er Jahre und hat die Programmierung seit den 90er Jahren stark verändert
Die Idee war, dass über Klassen eine bessere Abbildung von Gegenständen aus der realen Welt auf Datenstrukturen möglich sein soll
Objekte besitzen Eigenschaften (Properties) und Aktionen (Methoden)
Alle moderneren Programmiersprachen sind objektorientiert
Was ist OOP und warum braucht man es? (Teil 2)
Gegenstände über Klassen abbilden
Das klassische Beispiel ist das Auto
Eigenschaften: Farbe, Gewicht, Schadstofklasse, Leistung usw.
Methoden: Fahren, Bremsen
Ganz so einfach geht es in der Praxis natürlich nicht
Die klassischen drei Säulen der OOP
Kapselung
Vererbung
Polymorphie
Gute Definition auf Wikipedia: https://de.wikipedia.org/wiki/Objektorientierte_Programmierung
Warum OOP?
Kapselung von Funktionalitäten und Datenstrukturen ist immer sinnvoll
Strukturierte Datenelementen können nur über Klassen repräsentiert werden
Das Prinzip der Vererbung wird vor allem in GUI-Frameworks verwendet, da einfache GUI-Elemente die Grundlage für umfangreichere GUI-Elemente bilden
Programmieren mit Klasse(n)
Eine Klasse wird mit dem class-Befehl definiert
Properties werden als Variablen im Konstruktor festgelegt
Besondere Schreibweise: self.NameDerProperty = Wert
Methoden sind lediglich Functions innerhalb der Klasse
Besonderheit: Der erste Parameter ist immer self
Die Rolle von self
In jeder Klassendefinition kommt "überall" self vor
self steht für die Klasse selber und beim Konstruktor und Methoden für die aktuelle Instanz der Klasse
Die Rolle des Konstruktors
Function mit dem Namen __init__(self)
Wird automatisch ausgeführt, wenn die Klasse verwendet wird
In der Regel wird der Konstruktor mit weiteren Parametern definiert
Aus Klassen werden Objekte
Eine Klasse ist nur eine Definition
Ein Programm arbeitet mit Objekten
Ein Objekt entsteht aus einer Klasse
Die resultierende Referenz wird in der Regel einer Variablen zugewiesen
Das Ergebnis ist eine Variable tier1, die eine Referenz (Adresse) des Objekts enthält
Von einer Klasse können beliebig viele Objekte gebildet werden
Members implementieren
Es gibt zwei Sorten von Members: Properties und Methods
Properties sind Eigenschaften, die wie eine Variable für einen Wert steht
Properties werden im Konstruktor definiert
Methoden sind Functions, die zu der Klasse gehören
Methoden werden innerhalb der Klassendefinition definiert
Der erste Parameter ist immer self
Klassen erben von anderen Klassen (Teil 1)
Vererbung wird auch ableiten einer Klasse genannt
Erbt Klasse B von Klasse A, übernimmt Klasse B automatisch alle Members der Klasse A
A ist die Basisklasse (oder auch Superklasse genannt)
Bei Python gibt es Mehrfachvererbung (was relativ selten ist)
Mehrfachvererbung = Eine Klasse C kann von einer Klasse A und einer Klasse B abgeleitet werden
Klassen erben von anderen Klassen (Teil 2)
Schreibweise: Der Name der Basisklasse wird bei der Klassendefinition in Klammern gesetzt
Die neue Klasse Hund erbt von der Klasse Tier
Tier ist die Basisklasse der Klasse Hund
Innerhalb der Klasse Hund wird die Basisklasse über super() angesprochen
Zusammenfassung
Python ist eine objektorientierte Programmierung
OOP = Kapselung und Vererbung
Über den class-Befehl wird eine neue Klasse definiert
Eine Klasse besitzt einen Konstruktor (__init__), Properties und Methoden (Members)
Mit einer Klasse werden Objekte angelegt, die alle Members der Klasse besitzen
Jede Klasse kann von anderen Klassen abgeleitet werden (Vererbung)
Es gibt Einfach- und Mehrfachvererbung
Einstieg in Python - Lektion 8
By Peter Monadjemi
Made with Slides.com
Einstieg in Python - Lektion 8
Objektorientierte Programmierung
48
Peter Monadjemi
Trainer and educator for developer topics
pemo09
More from
Peter Monadjemi