Skip to content

Commit f58e0a8

Browse files
committed
wip: slides - classes in swp pr
1 parent 3a53d0e commit f58e0a8

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
---
2+
theme: seriph
3+
routerMode: hash
4+
title: Klassen in OOP in C#
5+
info: |
6+
## Klassen in OOP in C#
7+
background: https://github.com/HTL-Wolfsberg-Betriebsinformatik/skript/blob/main/slides/content/slides/background-cover-16-9.webp?raw=true
8+
class: text-center
9+
drawings:
10+
persist: false
11+
transition: slide-left
12+
mdc: true
13+
layout: cover
14+
hideInToc: true
15+
download: true
16+
export:
17+
format: pdf
18+
dark: false
19+
withClicks: true
20+
withToc: true
21+
selectable: true
22+
---
23+
24+
# Objektorientierte Programmierung
25+
26+
## Klassen
27+
28+
---
29+
hideInToc: true
30+
---
31+
32+
# Inhalt
33+
34+
<Toc minDepth="1" maxDepth="1" />
35+
36+
---
37+
38+
# Warum brauchen wir Klassen?
39+
40+
Structs reichen für einfache Daten, aber sobald Dinge **Verhalten** haben (z. B. ein Auto, das fahren kann), brauchen wir **Klassen**.
41+
42+
- Klassen sind das Herz der objektorientierten Programmierung (OOP).
43+
- Sie beschreiben wie etwas aussieht (Daten) und was es tun kann (Methoden).
44+
45+
<br>
46+
47+
**Beispiel:**
48+
49+
```csharp
50+
class Haus
51+
{
52+
public int AnzahlFenster;
53+
public string Farbe;
54+
55+
public void OeffneFenster()
56+
{
57+
Console.WriteLine("Fenster geöffnet!");
58+
}
59+
}
60+
```
61+
62+
---
63+
64+
# Klassen = der Bauplan 📝
65+
66+
Eine Klasse ist wie ein **Bauplan** für ein **Haus**.
67+
68+
- Der Bauplan beschreibt, welche Räume, Fenster und Türen das Haus hat.
69+
- Aber solange der Plan nur auf Papier existiert, steht noch kein Haus.
70+
71+
```csharp
72+
class Player
73+
{
74+
public int Lebenspunkte;
75+
76+
public void Angreifen()
77+
{
78+
Console.WriteLine($"Spieler greift an.");
79+
}
80+
}
81+
```
82+
83+
<br>
84+
85+
> 👉 Diese Klasse ist nur die Anleitung, kein echtes Objekt im Speicher.
86+
87+
---
88+
89+
# Der Konstruktor = der Baumeister 👷‍♂️
90+
91+
Damit aus einem Bauplan ein echtes Haus wird, braucht man jemanden, der es baut – den **Baumeister**.
92+
93+
In C# übernimmt das der **Konstruktor**.
94+
95+
```csharp
96+
class Player
97+
{
98+
public int Lebenspunkte;
99+
100+
public Player(int lebenspunkte) // Konstruktor
101+
{
102+
this.Lebenspunkte = lebenspunkte;
103+
}
104+
105+
public void Angreifen()
106+
{
107+
Console.WriteLine($"Spieler greift an.");
108+
}
109+
}
110+
```
111+
112+
---
113+
114+
# Das Objekt = das gebaute Haus 🏠
115+
116+
Wenn der Bauplan (Klasse) umgesetzt wird, entsteht ein konkretes **Objekt** – das „echte Haus“.
117+
118+
> 💡 Merke: Objekt = Instanz der Klasse.
119+
120+
```csharp
121+
Player player = new Player(100);
122+
Player enemy = new Player(50);
123+
124+
Console.WriteLine(player.Lebenspunkte); // 100
125+
Console.WriteLine(enemy.Lebenspunkte); // 50
126+
```
127+
128+
---
129+
130+
# Objekte referenzieren
131+
132+
Eine Klasse erstellt ein Objekt, und ein Objekt ist ein **Referenztyp** (*"referenzieren"*).
133+
134+
**Stell dir ein Schulspind-System vor:**
135+
- Der Spind (Objekt) steht irgendwo im Schulhaus → das ist der Speicher im Heap.
136+
- Die Spindnummer (Referenz) steht auf deinem Schlüsselanhänger → das ist die Variable im Code.
137+
138+
```csharp
139+
Haus a = new Haus("Weiß"); // a speichert die „Spindnummer“
140+
Haus b = a; // b bekommt dieselbe Nummer
141+
142+
b.Farbe = "Grün";
143+
Console.WriteLine(a.Farbe); // Ausgabe: Grün
144+
```
145+
146+
➡️ Beide Variablen (`a` und `b`) zeigen auf dasselbe Objekt (im Speicher).
147+
148+
➡️ Variablen von Klassen speichern nicht das Objekt selbst,
149+
sondern nur eine Referenz (Adresse), um es zu erreichen.
150+
151+
---
152+
153+
# Zusammenfassung
154+
155+
| Begriff | Analogie | Bedeutung |
156+
| --------------- | ------------ | ---------------------------------------- |
157+
| **Klasse** | Bauplan | Vorlage, beschreibt Aufbau und Verhalten |
158+
| **Konstruktor** | Baumeister | Erzeugt das Objekt und befüllt es |
159+
| **Objekt** | Haus / Spind | Konkrete Instanz im Speicher |
160+
| **Referenz** | Spindnummer | Zeiger auf das Objekt im Heap |
161+
162+
---
163+
164+
# Datenkapselung
165+
166+
TODO
167+
168+
---

0 commit comments

Comments
 (0)