aboutsummaryrefslogtreecommitdiff
path: root/Info/10/2/Polymorphismus/slides.md
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-04-26 15:23:29 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-04-26 15:27:07 +0200
commitf2571c4dfd1df0371fee1191589264b84db10065 (patch)
tree9e5c04d49e2f5f2644dafc9ad7f3e48c12e81510 /Info/10/2/Polymorphismus/slides.md
parente81c04b0a3813ed837ca1831a408a32c7d01a696 (diff)
downloadunterricht-f2571c4dfd1df0371fee1191589264b84db10065.tar.gz
unterricht-f2571c4dfd1df0371fee1191589264b84db10065.zip
add exercise sheet and slides_handout.md
Diffstat (limited to 'Info/10/2/Polymorphismus/slides.md')
-rw-r--r--Info/10/2/Polymorphismus/slides.md40
1 files changed, 28 insertions, 12 deletions
diff --git a/Info/10/2/Polymorphismus/slides.md b/Info/10/2/Polymorphismus/slides.md
index 5b524b65..667ba987 100644
--- a/Info/10/2/Polymorphismus/slides.md
+++ b/Info/10/2/Polymorphismus/slides.md
@@ -13,6 +13,14 @@ header-includes: |
\colorlet{droplet color}{blue!50!cyan}
---
+## Lessons learned? AUFGABE 0
+
+**ZEIT: 5Min**
+
+Öffne das Bank Projekt in der Online-IDE.
+Mach Dich insbesondere mit den Attributen der Klasse `Bank` sowie `Konto` vertraut.
+Welche Probleme entstehen durch die fehlenden Zugriffsmodifikatoren?
+
## Lessons learned?
::: columns
@@ -41,6 +49,15 @@ Auch in Software müssen, wie in der Realität, Zugriff fest geregelt sein.
\node[rotate=-20,scale=3] at (12, 3) {\Huge \color{red} \textbf{!}};
\end{tikzpicture}
+## Lessons learned? AUFGABE 1
+
+**ZEIT: 3Min**
+
+Ergänze die Attribute der Klasse `Bank` und `Konto` um den Zugriffsmodifikator `private`{.java}.
+
+### Tipp: Syntax Deklaration von Attributden
+`<Zugriffsmodifikator> <Datentype> <Attributname>;`
+
## Grundsatz der Datenkapselung
Zwei Aspekte sind wichtig:
@@ -577,24 +594,25 @@ griechisch Vielgestaltigkeit
## Polymorphismus
-*ist die Eigenschaft, dass ein **Referenzattribut** nicht nur Objekte der als Datentyp angegebenen Klasse referenzieren kann, sondern auch Objekte **aller** zu dieser Klasse existierenden **Unterklassen**.*
+*... ist die Eigenschaft, dass ein **Referenzattribut** nicht nur Objekte der als Datentyp angegebenen Klasse referenzieren kann, sondern auch Objekte **aller** zu dieser Klasse existierenden **Unterklassen**.*
## Polymorphismus
\begin{tikzpicture}[scale=0.5]
- \begin{object}[text width=3.5cm]{s1}{0,0}
+ \begin{object}[text width=3.5cm]{th1}{0,0.5}
\instanceOf{Tierheim}
- \attribute{Tiere[0]}
+ \attribute{tiere[0]}
+ \attribute{tiere[1]}
\attribute{...}
\end{object}
- \begin{object}[text width=4cm]{a1}{12,0}
+ \begin{object}[text width=4cm]{h1}{12,0}
\instanceOf{Tier}
\attribute{name="Wolle"}
\attribute{geschlecht="ungewiss"}
\end{object}
- \begin{object}[text width=4cm]{a1}{12,5}
+ \begin{object}[text width=4cm]{t1}{12,5}
\instanceOf{Hund}
\attribute{name="Pluto" }
\attribute{geschlecht="maennlich"}
@@ -602,20 +620,18 @@ griechisch Vielgestaltigkeit
\end{object}
\only<2->{
- \node[fill=black, circle, minimum size=0.075cm] (circle) at (2.2, -1.75) {};
- }
- \only<2> {
+ \node[fill=black, circle, minimum size=0.075cm] (circle) at (2.2, -2.35) {};
\draw[line width=2pt, -latex] (circle) edge [bend right=15] (8, -0.5) {};
}
\only<3> {
- \draw[line width=2pt, -latex] (circle) edge [bend left=30] (8, 4.5) {};
+ \node[fill=black, circle, minimum size=0.075cm] (circle2) at (2.2, -1.4) {};
+ \draw[line width=2pt, -latex] (circle2) edge [bend left=30] (8, 4.5) {};
}
\end{tikzpicture}
+## Arbeitsauftrag Tierheimverwaltung Fortsetzung
-## Arbeitsauftrag Tierheimverwaltung Vorsetzung
-
-* **AUFGABE 3:** Passe die Klasse Hund entsprechend an
+* **AUFGABE 3:** Vervollständige die Klasse Hund als Spezialisierung der Klasse Tier
* **AUFGABE 4:** Implementiere die Methode `Tierheim.besuchen()` und überlege dir welche Ausgaben das Programm machen wird. Überprüfe deine Vermutung in dem du das Programm ausführst.
## Polymorphismus