EGE/KlassenEinfuehrung

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

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