diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-04-26 15:23:29 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2023-04-26 15:27:07 +0200 |
| commit | f2571c4dfd1df0371fee1191589264b84db10065 (patch) | |
| tree | 9e5c04d49e2f5f2644dafc9ad7f3e48c12e81510 /Info/10/2/Polymorphismus/slides.md | |
| parent | e81c04b0a3813ed837ca1831a408a32c7d01a696 (diff) | |
| download | unterricht-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.md | 40 |
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 |
