diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-07-12 12:13:01 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-07-12 12:13:01 +0200 |
| commit | 0c7d36054209bffcc15f38a793da2ffae229f908 (patch) | |
| tree | 0ae65454a59b4aebb353ca700e208968bb3a55c5 | |
| parent | bd6321196f19a0768391500ff5afe4e9dc657045 (diff) | |
| download | unterricht-0c7d36054209bffcc15f38a793da2ffae229f908.tar.gz unterricht-0c7d36054209bffcc15f38a793da2ffae229f908.zip | |
add my last lesson in 9B
| l--------- | Info/23_24/07/09/9B/img/greenfoot_buttons.png | 1 | ||||
| -rw-r--r-- | Info/23_24/07/09/9B/img/rennbahn.png | bin | 0 -> 14491 bytes | |||
| -rw-r--r-- | Info/23_24/07/09/9B/schedule.md | 26 | ||||
| -rw-r--r-- | Info/23_24/07/09/9B/slides.md | 175 |
4 files changed, 202 insertions, 0 deletions
diff --git a/Info/23_24/07/09/9B/img/greenfoot_buttons.png b/Info/23_24/07/09/9B/img/greenfoot_buttons.png new file mode 120000 index 00000000..a1c2dfa2 --- /dev/null +++ b/Info/23_24/07/09/9B/img/greenfoot_buttons.png @@ -0,0 +1 @@ +../../../../../9/3/SpaceInvaders/img/greenfoot_buttons.png
\ No newline at end of file diff --git a/Info/23_24/07/09/9B/img/rennbahn.png b/Info/23_24/07/09/9B/img/rennbahn.png Binary files differnew file mode 100644 index 00000000..95c7c7ef --- /dev/null +++ b/Info/23_24/07/09/9B/img/rennbahn.png diff --git a/Info/23_24/07/09/9B/schedule.md b/Info/23_24/07/09/9B/schedule.md new file mode 100644 index 00000000..2c87b2ad --- /dev/null +++ b/Info/23_24/07/09/9B/schedule.md @@ -0,0 +1,26 @@ +--- +lang: de +geometry: margin=2cm +--- +# 2. KA Verbesserung / OO-Modellierung + +* **Klasse**: 9B +* **Datum**: 09.07 + +## Lernziele + +## Verlaufplan + +--------------------------------------------------------------------------------------------------- +Zeit Phase Unterrichtsgeschehen Ziel Methode Medien +----- --------------- -------------------------------------------- ----------- ---------- --------- +30 KA + +5 Erarbeitung Modellierung + +10 Erarbeitung Modellierung + +10 Sicherung Konstruktor + +35 Übung Mini-Projekt Rennbahn +--------------------------------------------------------------------------------------------------- diff --git a/Info/23_24/07/09/9B/slides.md b/Info/23_24/07/09/9B/slides.md new file mode 100644 index 00000000..d20f010e --- /dev/null +++ b/Info/23_24/07/09/9B/slides.md @@ -0,0 +1,175 @@ +--- +header-includes: | + \makeatletter + \beamer@ignorenonframefalse + \makeatother +--- + +## Rennbahn +\vspace{-0.75cm} +{.center} + +## \faIcon{pencil-alt} Arbeitsauftrag - Modellierung 5 min {.standout} + +Erstelle eine Klassendiagramm (mehrere Klassenkarten) zu allen Klassen, die du beim Rennen entdecken kannst. + +## Greenfoot und die geheimnisvollen Knöpfe + +{.center} + +### Act + +Ruft die `act`-Methode jedes Actors [einmal]{.underline} auf. + +### Run + +Startet eine Wiederholug und ruft während jedem Schritt die `act`-Methode jedes Actors auf. + +## Von der Klassenkarte zum Code + +::: {.columns align=center} +:::: {.column width=30%} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Auto}{0, 0} +\attribute{geschwindigkeit} +\attribute{farbe} +\operation{bewegen()} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=60%} +```java +public class Auto // Klassendefinition +{ // Attribute + int geschwindigkeit; + String farbe; + + // Methoden + public void bewegen() { + ... + } +} +``` +:::: +::: + +## Von der Klasse zum Objekt + +::: {.columns align=center} +:::: {.column width=45%} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Auto}{0, 0} +\attribute{geschwindigkeit} +\attribute{farbe} +\operation{bewegen()} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=5%} +\Large $\Rightarrow$ +:::: + +:::: {.column width=45%} +\pause +\begin{tikzpicture} +\begin{object}[text width=4cm]{a1: Auto}{0, 0} +\attribute{geschwindigkeit = 2} +\attribute{farbe = "blau"} +\end{object} +\end{tikzpicture} +:::: +::: + +\vspace{1cm} +\pause +### \faIcon{lightbulb} Wo kommen die Attributwerte her? + +\pause +Sie müssen beim Erzeugen eines Objekts angegeben werden. + +## Objekte erzeugen + +Objekte einer Klasse werden mit dem Schlüsselwort `new`{.java} erzeugt. + +\pause +### \faIcon{pencil-alt} [Der Konstruktor]{.underline} + +>- **Methode** der Klasse, die beim Erzeugen ein neues Objekt aufgerufen wird. +>- Heißt immer wie die Klasse. +>- Hat [keine]{.underline} Angabe eines Rückgabetyps. + +\pause +::: {.columns} +:::: {.column width=35%} +\vspace{0.5cm} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Auto}{0, 0} +\attribute{geschwindigkeit} +\attribute{farbe} +\operation{...} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=65%} +```java +public class Auto { +int geschwindigkeit; // Attribute +int farbe; +public Auto() { // Konstruktor + geschwindigkeit = 2; + farbe = "blau"; +} +``` +:::: +::: + +## \faIcon{desktop} Arbeitsauftrag - Implementiere den Konstruktor der Klasse Auto 10 min + +\large +* Kopiere das Greenfoot-Projekt **Rennbahn** aus dem Vorlagen-Laufwerk und öffne es in Greenfoot. +* Ergänze den **Konstruktor** der Klasse `Auto` + * Der Konstruktor soll die `geschwindigkeit` auf 2 initialisieren +* **Fuer Schnelle**: + Erzeuge ein Auto und eine Rakete im Konstruktor der Klasse `Rennbahn`. + Positioniere das Auto (`addObject(object, x, y)`{.java}) an Position $(90 | 700)$. + Positioniere die Rakete an Position $(220 | 700)$. + +## \faIcon{pencil-alt} Konstruktor \only<2->{mit Parametern} + +### \faIcon{lightbulb} Was wenn die Attributwerte nicht immer gleich sein sollen? + +\pause +$\Rightarrow$ Wir können dem Konstruktor Parameter übergeben. + +\vspace{0.5cm} +::: {.columns align=center} +:::: {.column width=40%} +\pause +`new Auto(5, "gruen");`{.java} +:::: + +:::: {.column width=5%} +\Large $\Rightarrow$ +:::: + +:::: {.column width=45%} +\pause +\begin{tikzpicture} +\begin{object}[text width=4cm]{a1: Auto}{0, 0} +\attribute{geschwindigkeit = 5} +\attribute{farbe = "gruen"} +\end{object} +\end{tikzpicture} +:::: +::: + +## \faIcon{desktop} Arbeitsauftrag - `Auto` **Konstruktor** mit Parametern + +\large +* Ergänze den Konstruktor der Klasse `Auto`: + * die Geschwindigkeit soll angegeben werden können + * die Farbe soll angegeben werden können +* **Für Schnelle:** Implementiere eine neue Klasse `Bus` als Unterklasse von `Actor` mit Geschwindigkeit 1. |
