KlassenEinfuehrung

Aus ProgrammingWiki
< EGE
Archivierte Version vom 2016-03-12T10:53:12+00:00. Aktuelle Version

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())