Aufgaben-Python/01_einstieg_klassen/README.md

86 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kapitel 01: Die erste Klasse – Was sind Klassen & Objekte?
Herzlich willkommen in der Welt der objektorientierten Programmierung (kurz: **OOP**)! 🐶🐱
Bisher hast du in Python mit Variablen, Listen, Dictionaries und Funktionen gearbeitet. Das hat super funktioniert! Doch wenn Programme größer werden, wird es schnell unübersichtlich.
Hier kommen **Klassen** ins Spiel.
---
## 🏗️ Die wichtigste Analogie: Bauplan vs. Objekt
Stell dir vor, du bist Architektin oder Bäckermeisterin:
- Eine **Klasse** ist wie ein **Bauplan** für ein Haus (oder eine **Plätzchen-Ausstechform**). Der Bauplan selbst ist noch kein Haus, in dem man wohnen kann. Er beschreibt nur: *Wie sieht ein Haus aus? Welche Eigenschaften hat es?*
- Ein **Objekt** (auch **Instanz** genannt) ist das **echte Haus**, das nach diesem Bauplan gebaut wurde (oder das gebackene Plätzchen). Aus *einem* Bauplan kannst du beliebig viele verschiedene Häuser bauen!
```
[ KLASSE / BAUPLAN ]
class Haustier:
│
─────────┴─────────
│ │
[ OBJEKT 1 ] [ OBJEKT 2 ]
Bello, Hund, 3 Mimi, Katze, 5
```
---
## 🔍 Warum nicht einfach Dictionaries?
Bisher hättest du Tiere vielleicht so gespeichert:
```python
tier1 = {"name": "Bello", "tierart": "Hund", "alter": 3}
tier2 = {"name": "Mimi", "art": "Katze", "alter": 5} # Ups! Hier heißt der Key "art" statt "tierart"!
```
Beim Dictionary kann man sich schnell bei Schlüsseln vertippen. Eine Klasse gibt uns eine feste Struktur vor.
---
## 💻 Wie sieht eine Klasse in Python aus?
Eine einfache Klasse definierst du mit dem Schlüsselwort `class`:
```python
class Auto:
pass # 'pass' bedeutet: "Hier passiert erst mal nichts"
```
Aus dieser Klasse kannst du nun ein Objekt erzeugen (**Instanziierung**):
```python
# Objekt erstellen:
mein_auto = Auto()
# Eigenschaften (Attribute) zuweisen mit dem Punkt (.):
mein_auto.farbe = "Rot"
mein_auto.marke = "VW"
mein_auto.ps = 110
print(mein_auto.farbe) # Gibt "Rot" aus
```
Du kannst ganz einfach ein zweites Auto bauen:
```python
dein_auto = Auto()
dein_auto.farbe = "Blau"
dein_auto.marke = "BMW"
dein_auto.ps = 180
```
`mein_auto` und `dein_auto` sind zwei völlig eigenständige Objekte, die aus demselben Bauplan `Auto` entstanden sind!
---
## 🎯 Deine Aufgabe
Öffne jetzt die Datei `aufgabe.py` und bearbeite die Aufgaben:
1. Erstelle die Klasse `Haustier`.
2. Erzeuge zwei Haustier-Objekte `bello` und `mimi` mit Eigenschaften.
3. Schreibe zwei kleine Hilfsfunktionen, die mit deinen Haustier-Objekten arbeiten.
### Testen:
Führe deine Tests aus mit:
```bash
python3 test_aufgabe.py
```
Sobald alle Tests bestanden sind, kannst du mit Kapitel 02 weitermachen!