first commit

This commit is contained in:
2025-04-05 10:33:47 +02:00
commit 586e84eee9
5 changed files with 107 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/__pycache__

21
README.md Normal file
View File

@ -0,0 +1,21 @@
# Beispiel für objektorientierte Programmierung (OOP) in Python
## Klassen
* `FireFighter` ist die Basisklasse für einen Feuerwehrmann
* `F3FireFighter` erweitert die Klasse `FireFighter` um F3 spezifische Anforderungen
## Ausführung
`main.py` starten
## Ausgabe
```
--- einfache Klassennutzung ---
Yannic: 150 Bar
Daniel: 100 Bar
Robin: 90 Bar
--- das Gleiche nochmal mit Klassenvererbung ---
HINWEIS: Yannic ist F3 und kann auch ohne AGT atmen!
Yannic: 150 Bar
Daniel: 100 Bar
Robin: 90 Bar
```

13
f3firefighter.py Normal file
View File

@ -0,0 +1,13 @@
#!/usr/bin/python
# import class FireFighter from file firefighter(.py)
from firefighter import FireFighter
# new class F3FireFighter extending class FireFighter
class F3FireFighter(FireFighter):
# overriding printPressure in class FireFighter
def printPressure(self):
print("HINWEIS: %s ist F3 und kann auch ohne AGT atmen!" % self.name)
# calling printPressue as defined in class FireFighter
FireFighter.printPressure(self)

21
firefighter.py Normal file
View File

@ -0,0 +1,21 @@
#!/usr/bin/python
class FireFighter:
# firstname
name = None
# in bar
pressure = None
# constructur, called on object instantiation
def __init__(self, name):
self.name = name
def beginAGT(self, initPressure):
self.pressure = initPressure
def endAGT(self, pressureUsage):
self.pressure = self.pressure - pressureUsage
def printPressure(self):
print("%s: %d Bar" % (self.name, self.pressure))

51
main.py Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/python
from firefighter import FireFighter
from f3firefighter import F3FireFighter
print('--- einfache Klassennutzung ---')
# create firefighters
yannic = FireFighter("Yannic") # calls constructor ("__init__")
daniel = FireFighter("Daniel")
robin = FireFighter("Robin")
# start agt on each firefighter
yannic.beginAGT(310)
daniel.beginAGT(310)
robin.beginAGT(300)
# end agt on each firefighter
yannic.endAGT(160)
daniel.endAGT(210)
robin.endAGT(210)
# print remaining pressure
yannic.printPressure()
daniel.printPressure()
robin.printPressure()
print('\n--- das Gleiche nochmal mit Klassenvererbung ---')
# create firefighters
yannic = F3FireFighter("Yannic")
daniel = FireFighter("Daniel")
robin = FireFighter("Robin")
# start agt on each firefighter
yannic.beginAGT(310)
daniel.beginAGT(310)
robin.beginAGT(300)
# end agt on each firefighter
yannic.endAGT(160)
daniel.endAGT(210)
robin.endAGT(210)
# print remaining pressure
yannic.printPressure()
daniel.printPressure()
robin.printPressure()