diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2026-02-11 12:29:56 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2026-02-11 12:29:56 +0100 |
| commit | f31a52fa2cdde4936f10ff2449413bd78ce4aebe (patch) | |
| tree | 2b99ed9b9649498b4547f916a4593dc5c5f8beb2 | |
| parent | ca5cd2c29bd77cffc8115ae869996d3997b93955 (diff) | |
| download | unterricht-f31a52fa2cdde4936f10ff2449413bd78ce4aebe.tar.gz unterricht-f31a52fa2cdde4936f10ff2449413bd78ce4aebe.zip | |
improve my polymorphism material and adapt to the online-ide
| -rw-r--r-- | Info/10/2/Polymorphismus/handout.tex | 18 | ||||
| -rw-r--r-- | Info/10/2/Polymorphismus/slides.md | 30 |
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  `\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. |
