EGE/KlassenEinfuehrung
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
'''Klasse definieren:'''
class Auto: # Namen von Klassen sollten groß geschrieben werden
def __init__(self, typ_neu, kennzeichen_neu, geschwindigkeit_neu):
self.typ = typ_neu
self.kennzeichen = kennzeichen_neu
self.geschwindigkeit = int(geschwindigkeit_neu)
def geschwindigkeitAusfuehrlichAusgeben(self):
return self.typ + " fährt grade " + str(self.geschwindigkeit) + " km/h"
'''Konkretes Objekt initialisieren:'''
caddy = Auto( "VW Caddy" , "ERZ-AB 34", 102) # "caddy" ist der Name des Objekts
roomster = Auto("Skoda Roomster", "ERZ-CD 56", 0)
'''Werte lesen / schreiben:''' (eigentlich unüblich)
print (caddy.typ) # schreibt "VW Caddy"
caddy.kennzeichen = "ANA-XY 12"
if caddy.geschwindigkeit>53:
print ( caddy.geschwindigkeitAusfuehlichAusgeben() )
'''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())