Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:obj:klassen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python:obj:klassen [2020/11/20 13:35] – [Klassen in Python] lutzpython:obj:klassen [2021/01/07 14:00] (aktuell) – [Aufgaben] lutz
Zeile 138: Zeile 138:
 Im Bereich ''%%# Methoden der Klasse%%'' werden die Klassenmethoden definiert. Eine Methodendefinition beginnt genau wie eine Funktionsdefinition mit dem Schlüsselwort ''%%def%%'' Im Unterschied zu einer Funktionsdefinition enthält sie aber immer den Parameter ''%%self%%'' zusätzlich zu den übrigen Parametern. Im Bereich ''%%# Methoden der Klasse%%'' werden die Klassenmethoden definiert. Eine Methodendefinition beginnt genau wie eine Funktionsdefinition mit dem Schlüsselwort ''%%def%%'' Im Unterschied zu einer Funktionsdefinition enthält sie aber immer den Parameter ''%%self%%'' zusätzlich zu den übrigen Parametern.
  
-Die erste Methode ist der sogenannte **Konstruktor**. In Python bekommt er den Namen ''%%__init__(self...)%%''.+Die erste Methode ist der sogenannte **Konstruktor**. In Python bekommt er den Namen ''%%__init__(self...)%%'' (Beachte: Vor und nach init stehen jeweils zwei Unterstriche). Der Konstruktor wird beim erstellen der Klasse aufgerufen. Dabei werden an die Klassenvariablen (Attribute) sinnvolle Werte übergeben. Damit man auf die Klassenvariablen zugreifen kann, muss vor dem Variablennamen das Schlüsselwort ''%%self%%'' stehen, sonst erzeugt man einfach lokale Variablen.
  
 +Mit der Methode ''%%geschwindigkeitAendern(self, wert)%%'' wird zum Attribut ''%%geschwindigkeit%%'' ein Wert addiert bzw. subtrahiert.
  
-== Erklärvideo zum Erstellen der Klasse: ==+Mit der Methode ''%%lackieren(self, farbe)%%'' wird das Attribut ''%%farbe%%'' geändert. 
 + 
 +Mit der Methode ''%%ausgabe(self)%%'' werden alle Attribute der Klasse mit ihren Werten ausgegeben. 
 + 
 +Im Hauptprogramm werden mit 
 + 
 +<code python> 
 +volvo = LKW("Volvo FL",12,240,"blau",30) 
 +man = LKW("MAN TGA",26 ,480,"gelb",0) 
 +</code> 
 + 
 +zwei Objekte (Instanzen) der Klasse erzeugt. Dabei wird der Konstruktor (''%%__init__(self...)%%'') der Klasse aufgerufen und die Attribute werden mit den entsprechenden Werten belegt. In der Parameterliste fehlt jetzt das ''%%self%%''
 + 
 +Danach folgen einige Methodenaufrufe. Um die Methoden für ein Objekt aufzurufen, schreibt man den Objektnamen, danach einen Punkt und den Methodennamen. In der Parameterliste fehlt wieder das ''%%self%%''
 + 
 +\\ 
 + 
 +==== Erklärvideo zum Erstellen der Klasse: ====
  
 {{youtube>xyHhYwW3ERg}} {{youtube>xyHhYwW3ERg}}
Zeile 169: Zeile 187:
 Programmiere entsprechend deiner Klassendiagramme aus Aufgabe 2 die Klassen "Smartphone", "Uhr" und "Schuhe", Ergänze die Klassen entsprechend der Klasse LKW jeweils um das Attribut ''%%bezeichnung%%'', um den Konstruktur und um eine Methode ''%%ausgabe(self)%%''. Teste die Klasse durch Anlegen einiger Instanzen und durch aufrufen der Klassenmethoden. Programmiere entsprechend deiner Klassendiagramme aus Aufgabe 2 die Klassen "Smartphone", "Uhr" und "Schuhe", Ergänze die Klassen entsprechend der Klasse LKW jeweils um das Attribut ''%%bezeichnung%%'', um den Konstruktur und um eine Methode ''%%ausgabe(self)%%''. Teste die Klasse durch Anlegen einiger Instanzen und durch aufrufen der Klassenmethoden.
  
 +**Aufgabe 5**
 +
 +Gegeben ist das UML-Programm einer Klasse Katze:
 +
 +{{ :python:obj:katze.png?400 |}}
 +
 +Erstelle die Klasse in Python. Lass dir für die Methoden sinnvollen Quelltext einfallen. Lege einige Objekte der Klasse an und teste die Methoden. Lass dir eventuell weitere sinnvolle Methoden einfallen.
  
 +[[python:loesungen:obj:klassen| >> Lösungen]]
  
 +[[python:obj:vererb| >> Vererbung]]
  
 \\ \\
python/obj/klassen.1605875742.txt.gz · Zuletzt geändert: 2020/11/20 13:35 von lutz