KlassenEinfuehrung
Aus ProgrammingWiki
< EGE
Klasse definieren:
class Auto:
def __init__(self, typ_neu, kennzeichen_neu):
self.typ = typ_neu
self.kennzeichen = kennzeichen_neu
self.geschwindigkeit = 0
def gas_geben(self, geschwindigkeitserhoehung):
self.geschwindigkeit = self.geschwindigkeit + geschwindigkeitserhoehung
def geschwindigkeitAngeben(self):
return self.typ + " fährt gerade " + str(self.geschwindigkeit) + " km/h"
def faehrt_zu_schnell(self, hoechstgeschwindigkeit):
if self.geschwindigkeit>hoechstgeschwindigkeit+3:
return True
else:
return False
Konkretes Objekt initialisieren:
caddy = Auto("VW Caddy", "ERZ-AB 34") # "caddy" ist der Name des Objekts
v_neunzig = Auto("Volvo V 90", "ERZ-V 90")
Werte lesen / schreiben:
caddy.gas_geben(20) caddy.gas_geben(15)
print(caddy.geschwindigkeitAngeben())
if caddy.faehrt_zu_schnell(30):
print("HG überschritten")
Komplexes Beispiel (schwer):
class Bierflasche: # Namen von Klassen sollten groß geschrieben werden
def __init__(self, marke_neu):
self.marke = marke_neu
self.istLeer = False
def trinkeFlasche(self):
self.istLeer = True
def zustand(self):
fuellstand = ""
if self.istLeer:
fuellstand = "leere"
else:
fuellstand = "volle"
return "eine " + fuellstand + " Flasche " + self.marke
class Bierkasten:
def __init__(self, anzahl, marke_neu):
self.inhalt = []
for i in range(anzahl):
self.inhalt.append(Bierflasche(marke_neu))
def gibFlasche(self, vonPos):
return self.inhalt[vonPos]
def neueFlasche(self, flasche):
if len(self.inhalt) < 20:
self.inhalt.append(flasche)
else:
print("Bierkasten ist voll.")
def ausgabe(self):
print("\nDieser Bierkasten enthält:")
for einzelflasche in self.inhalt:
print(einzelflasche.zustand())
# Objekt initialisieren:
fiedler = Bierflasche("Fiedler")
warsteiner = Bierflasche("Warsteiner")
kasten1 = Bierkasten(5, "Holsten")
kasten2 = Bierkasten(20, "Becks")
# Werte lesen / schreiben:
kasten1.neueFlasche(fiedler)
kasten2.neueFlasche(warsteiner)
print(fiedler.zustand())
fiedler.trinkeFlasche()
print(fiedler.zustand())
kasten1.ausgabe()
kasten2.ausgabe()
kasten1.gibFlasche(3).trinkeFlasche()
print (kasten1.gibFlasche(3).zustand())