aboutsummaryrefslogtreecommitdiff
path: root/Info/10
diff options
context:
space:
mode:
Diffstat (limited to 'Info/10')
-rw-r--r--Info/10/2/Polymorphismus/handout.tex18
-rw-r--r--Info/10/2/Polymorphismus/slides.md30
2 files changed, 28 insertions, 20 deletions
diff --git a/Info/10/2/Polymorphismus/handout.tex b/Info/10/2/Polymorphismus/handout.tex
index a52240dc..a05d2331 100644
--- a/Info/10/2/Polymorphismus/handout.tex
+++ b/Info/10/2/Polymorphismus/handout.tex
@@ -2,6 +2,7 @@
\csname endofdump\endcsname
\usepackage{minted}
\usepackage{wrapfig}
+\geometry{top=0.5cm}
\setlength\parindent{10pt}
@@ -12,7 +13,7 @@
\begin{multicols}{2}
\textbf{AUFGABE 0:}
\begin{itemize}
-\item Kopiere das Projekt Tierheim und mache dich kurz damit vertraut.
+\item Öffne das Projekt \textbf{Tierheim} und mache dich kurz damit vertraut.
\item Erkläre wie das Konzept der Vererbung im Code realisiert wird?
\item Markiere die in der Klasse \texttt{Katze} verwendeten Schlüsselwörter der Vererbung?
\item Gib an welche Objekte beim Ausführen der \texttt{main}-Methode der Klasse \texttt{Tierheim} erzeugt werden? Führe die Methode aus.
@@ -35,15 +36,18 @@ class Katze extends Tier {
\end{minted}
\end{multicols}
+\vspace{-1mm}
\noindent\textbf{AUFGABE 1:}
Überlege dir wie du unterschiedliche Tiere im Tierheim speicherst und setze deine Überlegung um.
-Welches Referenzattribut benötigt die Klasse \texttt{Tierheim}? \\[2mm]
+Welches Referenzattribut benötigt die Klasse \texttt{Tierheim}? \\[1mm]
+\kariert{3}
\noindent\textbf{AUFGABE 2:}
-Begründe warum Pluto (Objekt der Klasse \texttt{Hund}) nicht ins Tierheim aufgenommen werden kann.
+Begründe warum Pluto (Objekt der Klasse \texttt{Hund}) nicht ins Tierheim aufgenommen werden kann. \\[1mm]
+\kariert{7}
\begin{defbox}{Polymorphismus}
% \begin{tabularx}{\textwidth}{p{0.35\textwidth} p{0.03\textwidth} p{0.6\textwidth}}
@@ -79,20 +83,24 @@ Begründe warum Pluto (Objekt der Klasse \texttt{Hund}) nicht ins Tierheim aufge
\end{wrapfigure}
... ist die Eigenschaft, dass ein \textbf{Referenzattribut} nicht nur Objekte der als Datentyp angegebenen Klasse referenzieren kann, sondern auch Objekte \textbf{aller} zu dieser Klasse existierenden \textbf{Unterklassen}.% & &
-\vspace{3mm}
+\vspace{2mm}
Wird ein Objekt einer \textbf{Unterklasse} über dieses Referenzattribut referenziert, so werden Attribute und Methoden verwendet, wie sie in \textbf{dessen Klasse} bekannt sind (und nicht die überschriebenen Methoden der Oberklasse).
\end{defbox}
\noindent\textbf{AUFGABE 3:}
-Vervollständige die Klasse \texttt{Hund} als Spezialisierung der Klasse \texttt{Tier}.\\[2mm]
+Vervollständige die Klasse \texttt{Hund} als Spezialisierung der Klasse \texttt{Tier}.\\
\noindent\textbf{AUFGABE 4:}
\begin{itemize}
\item Implementiere die Methode \mintinline{java}{Tierheim.besuchen()}.
\item Überlege dir welche Ausgaben das Programm machen wird.
+\begin{tcolorbox}[title=Ausgabe]
+\psolution{\Large Wuff}
+\hrule
+\end{tcolorbox}
\item Überprüfe deine Vermutung in dem du das Programm ausführst.
\end{itemize}
\end{document}
diff --git a/Info/10/2/Polymorphismus/slides.md b/Info/10/2/Polymorphismus/slides.md
index 5baacfb8..196c955d 100644
--- a/Info/10/2/Polymorphismus/slides.md
+++ b/Info/10/2/Polymorphismus/slides.md
@@ -68,13 +68,14 @@ aspectratio: 169
\draw[{Triangle[open]}-] (allg) -- (spez);
\end{tikzpicture}
-## \faIcon{desktop} Arbeitsauftrag - 15min
+## \faIcon{desktop} Arbeitsauftrag: Bälle \hfill 15min
-* Kopiere das **Bälle** Projekt und öffne es in BlueJ
-* Erzeuge einen Ball und einen Flummi und starte die *Simulation*
-* Zeichne eine Klassendiagramm der Klassen `Flummi`, `Ball`, und `Kreis`.
+\let\tightlist\relax
+1. Öffne das **Baelle** Projekt
+2. Erzeuge einen Ball und einen Flummi und starte die *Simulation*
+3. Zeichne ein Klassendiagramm der Klassen `Flummi`, `Ball` und `Kreis`.
(Die Attribute und Methoden der Klasse `Kreis` können weggelassen werden)
-* Untersuche wie das Konzept der Vererbung in Java umgesetzt wurde.
+4. Untersuche, wie das Konzept der Vererbung in Java umgesetzt wurde.
\hfill{}
*Nicht der Physik-Lehrkraft zeigen!* `\o/`
@@ -90,16 +91,13 @@ aspectratio: 169
\begin{class}[text width=4.5cm]{Ball}{5, 0}
\inherit{Kreis}
\attribute{geschwindigkeit}
- \operation{Ausführen()}
- \operation{SonderTaste(sondertaste)}
- \operation{Taste(taste)}
- \operation{Geklickt(x, y, anzahl)}
+ \operation{act()}
\end{class}
\begin{class}[text width=3cm]{Flummi}{10, 0}
\inherit{Ball}
\attribute{bounceFaktor}
- \operation{Ausführen()}
+ \operation{act()}
\end{class}
\end{tikzpicture}
@@ -107,7 +105,6 @@ aspectratio: 169
Das Java Schlüsselwort ...
-
## \faIcon{pencil-alt} Vererbung in Java {.t}
Das Java Schlüsselwort `extends`{.java} drückt eine Vererbungsbeziehung zwischen zwei Klassen aus.
@@ -127,6 +124,7 @@ Das Java Schlüsselwort `extends`{.java} drückt eine Vererbungsbeziehung zwisch
Die Unterklasse erbt alle Methoden und Attribute der Oberklasse.
Man spricht: "Eine Felge *ist* ein Bauteil".
+Oder: "Ein Flummi *ist* ein Ball".
\pause
@@ -237,10 +235,11 @@ griechisch Vielgestaltigkeit
![](img/wolpertinger.jpg)
`\end{center}`{=latex}
-## \faIcon{desktop}/\faIcon{pencil-alt} Arbeitsauftrag Tierheimverwaltung - 15min
+## \faIcon{desktop}/\faIcon{pencil-alt} Arbeitsauftrag Tierheimverwaltung \hfill 15min
-* **AUFGABE 0:** Kopiere das Projekt Tierheim und mache dich kurz damit vertraut.
-* **AUFGABE 1:** Überlege dir wie du unterschiedliche Tiere im Tierheim speicherst und setze deine Überlegung um
+\let\tightlist\relax
+* **AUFGABE 0:** Öffne das Projekt **Tierheim** und mache dich kurz damit vertraut.
+* **AUFGABE 1:** Überlege dir, wie du unterschiedliche Tiere im Tierheim speicherst und setze deine Überlegung um
* **AUFGABE 2:** Begründe warum Pluto (Objekt der Klasse Hund) nicht ins Tierheim aufgenommen werden kann
## Polymorphismus
@@ -282,6 +281,7 @@ griechisch Vielgestaltigkeit
## \faIcon{desktop}/\faIcon{pencil-alt} Arbeitsauftrag Tierheimverwaltung Fortsetzung
+\let\tightlist\relax
* **AUFGABE 3:** Vervollständige die Klasse `Hund` als Spezialisierung der Klasse `Tier`
* **AUFGABE 4:** Implementiere die Methode `Tierheim.besuchen()`{.java} und überlege dir welche Ausgaben das Programm machen wird. Überprüfe deine Vermutung in dem du das Programm ausführst.
@@ -315,4 +315,4 @@ pluto.gibLaut();
`Wuff`
:::
-Da der **Polymorphismus** dafür sorgt das die Methode wie sie in der Unterklasse `Hund` bekannt ist ausgeführt wird.
+Da der **Polymorphismus** dafür sorgt, dass die Methode ausgeführt wird, so wie sie in der Unterklasse `Hund` bekannt ist.