aboutsummaryrefslogtreecommitdiff
path: root/Info
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-08-24 18:27:46 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-08-24 18:27:46 +0200
commit93ab5aec8bb85ef5d6680c50a04244a012334348 (patch)
treef72a444135b1d7ebafe63c25a1fb3044020ce3ea /Info
parentff1362676981d4ae3e6e1fb73eccc7d71d766a2b (diff)
downloadunterricht-93ab5aec8bb85ef5d6680c50a04244a012334348.tar.gz
unterricht-93ab5aec8bb85ef5d6680c50a04244a012334348.zip
update my Rennbahn project for the 9th grade
Diffstat (limited to 'Info')
m---------Info/9/3/Rennbahn/project0
-rw-r--r--Info/9/3/Rennbahn/slides.md155
2 files changed, 154 insertions, 1 deletions
diff --git a/Info/9/3/Rennbahn/project b/Info/9/3/Rennbahn/project
-Subproject 82b3b239c06a86e94032fc10bf163ff715a9f3f
+Subproject 98e6ac06b03dd2d595a9b7ae0a87e9af45f0e68
diff --git a/Info/9/3/Rennbahn/slides.md b/Info/9/3/Rennbahn/slides.md
index 443773fe..e92cb150 100644
--- a/Info/9/3/Rennbahn/slides.md
+++ b/Info/9/3/Rennbahn/slides.md
@@ -193,4 +193,157 @@ public class Auto {
* Ergänze den Konstruktor der Klasse `Auto`:
* die Geschwindigkeit soll angegeben werden können
* die Farbe soll angegeben werden können \vspace{0.5cm}
-* **Für Schnelle:** Implementiere eine neue Klasse `Bus` als Unterklasse von `Actor` mit Geschwindigkeit 1.
+* **Für Schnelle:** Implementiere eine neue Klasse `Bus` als Unterklasse von `Actor` mit Geschwindigkeit 3.
+
+
+<!-- ## Methoden aufrufen -->
+
+<!-- ### Was wir bereits können: -->
+
+<!-- Methoden des eigenen Objekts aufrufen. -->
+
+<!-- `bewegen(); // Ruft die Methode bewegen auf dem Objekt selbst auf`{.java} -->
+
+<!-- ### Was wir neues brauchen: -->
+
+<!-- Methoden anderer Objekte aufrufen. -->
+
+<!-- ```java -->
+ <!-- // Ruft die Methode bewegen auf anderesObject auf -->
+<!-- anderesObject.bewegen(); -->
+<!-- ``` -->
+
+## Zweimal der gleiche Code?
+
+::: {.columns}
+:::: {.column width=50%}
+```java
+pubic class Rakete {
+ int geschwindigkeit = 20;
+ public void bewegen() {
+ setLocation(getX(),
+ getY() - geschwindigkeit);
+ }
+}
+```
+::::
+
+:::: {.column width=50%}
+```java
+pubic class Bus {
+ int geschwindigkeit = 3;
+ public void bewegen() {
+ setLocation(getX(),
+ getY() + geschwindigkeit);
+ }
+}
+```
+::::
+:::
+
+\pause
+**Geht das nicht besser?**
+
+## \faIcon{pencil-alt} Vererbung
+
+Eine Klasse kann [alle]{.underline} Attribute und Methoden einer anderen Klasse \boldred{erben}.
+
+\pause
+\begin{tikzpicture}
+\begin{class}[text width=4cm]{Oberklasse}{0, 0}
+\end{class}
+
+\begin{class}[text width=4cm]{Unterklasse}{7, 0}
+\inherit{Oberklasse}
+\end{class}
+\end{tikzpicture}
+
+\pause
+Man spricht: Die *Unterklasse* erbt von der *Oberklasse*.
+
+\pause
+### Beispiel
+\begin{tikzpicture}
+\begin{class}[text width=4cm]{Fahrzeug}{0, 0}
+\end{class}
+
+\begin{class}[text width=4cm]{Auto}{7, 0}
+\inherit{Fahrzeug}
+\end{class}
+\end{tikzpicture}
+
+*Ein Auto **erbt** von Fahrzeug* bzw. *ein Auto **ist** ein Fahrzeug*.
+
+## \faIcon{pencil-alt} Vererbung in Java
+
+Um eine Vererbung auszudrücken wird in der Klassendefinition der **Unterklasse** `extends Oberklasse`{.java} ergänzt.
+
+Methoden und Attribute der Oberklasse können in der Unterklasse verwendet werden, als ob sie dort definiert sind.
+
+::: {.columns}
+:::: {.column width=20%}
+```java
+class Oberklasse {
+ int zahl;
+
+ Oberklasse() {
+ zahl = 13;
+ }
+}
+```
+::::
+
+:::: {.column width=60%}
+```java
+class Unterklasse extends Oberklasse {
+ // zahl ist bereits in Oberklasse definiert
+ Unterklasse() {
+ // Aufruf des Konstruktors der Oberklasse
+ super();
+ zahl = 12;
+ }
+}
+```
+::::
+:::
+
+
+## Vererbung - Generalisierung
+
+\begin{tikzpicture}
+\begin{class}[text width=4cm]{Rakete}{0, 0}
+\attribute{geschwindigkeit}
+\operation{bewegen()}
+\end{class}
+
+\begin{class}[text width=4cm]{Bus}{7, 0}
+\attribute{geschwindigkeit}
+\operation{bewegen()}
+\end{class}
+\end{tikzpicture}
+
+Gemeinsamkeiten mehreren Klassen in eine Oberklasse *auszulagern* nennt man \boldred{Generalisierung}.
+
+\pause
+
+\begin{tikzpicture}
+\begin{class}[text width=4cm]{Fahrzeug}{0, 2}
+\attribute{geschwindigkeit}
+\operation{bewegen()}
+\end{class}
+
+\begin{class}[text width=4cm]{Rakete}{7, 0}
+\inherit{Fahrzeug}
+\end{class}
+
+\begin{class}[text width=4cm]{Bus}{7, 2}
+\inherit{Fahrzeug}
+\end{class}
+\end{tikzpicture}
+
+## \faIcon{desktop} Arbeitsauftrag - Rest der Stunde {.standout}
+
+\centering
+Tobt euch aus!
+Lasst Autos explodieren!
+Baut einen zweiten Spieler ein ...