From 586e84eee9d8dcde5cbe69931680cad3cd96b923 Mon Sep 17 00:00:00 2001 From: damage Date: Sat, 5 Apr 2025 10:33:47 +0200 Subject: [PATCH] first commit --- .gitignore | 1 + README.md | 21 ++++++++++++++++++++ f3firefighter.py | 13 ++++++++++++ firefighter.py | 21 ++++++++++++++++++++ main.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 f3firefighter.py create mode 100644 firefighter.py create mode 100755 main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..225fc6f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/__pycache__ diff --git a/README.md b/README.md new file mode 100644 index 0000000..f72b689 --- /dev/null +++ b/README.md @@ -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 +``` diff --git a/f3firefighter.py b/f3firefighter.py new file mode 100644 index 0000000..3abc255 --- /dev/null +++ b/f3firefighter.py @@ -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) diff --git a/firefighter.py b/firefighter.py new file mode 100644 index 0000000..d32e4b6 --- /dev/null +++ b/firefighter.py @@ -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)) diff --git a/main.py b/main.py new file mode 100755 index 0000000..4073efa --- /dev/null +++ b/main.py @@ -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() + +