diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-06-30 13:23:51 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-06-30 13:23:51 +0200 |
| commit | f9744a04b6a10bb695c282aae724ae9fa706b0a4 (patch) | |
| tree | 407456e8ceb381a8c6eadd973052cee7433ad158 /Info/9/3/SpaceInvaders/slides.md | |
| parent | c9840b21d5a1615721712061fc4e11f5c7a213ca (diff) | |
| download | unterricht-f9744a04b6a10bb695c282aae724ae9fa706b0a4.tar.gz unterricht-f9744a04b6a10bb695c282aae724ae9fa706b0a4.zip | |
update my SpaceInvaders material
Diffstat (limited to 'Info/9/3/SpaceInvaders/slides.md')
| -rw-r--r-- | Info/9/3/SpaceInvaders/slides.md | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/Info/9/3/SpaceInvaders/slides.md b/Info/9/3/SpaceInvaders/slides.md index 1a262943..2ebe9bff 100644 --- a/Info/9/3/SpaceInvaders/slides.md +++ b/Info/9/3/SpaceInvaders/slides.md @@ -112,3 +112,162 @@ Startet einen **EVA**-Loop und ruft während dem `Update`-Schritt die `act`-Meth * Kopiere das Greenfoot-Projekt **SpaceInvaders** aus dem Vorlagen-Laufwerk und öffne es in Greenfoot. * Bearbeite den Arbeitsauftrag **SpaceInvaders AA 1.pdf** + +## \faIcon{chalkboard} Raumschiff & Alien {.standout} + +Das Projekt **SpaceInvadersVorlage2** enthält eine mögliche Lösung für den Arbeitsauftrag 1 + +## Von der Klassenkarte zum Code + +::: {.columns align=center} +:::: {.column width=30%} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Raumschiff}{0, 0} +\attribute{x} +\attribute{y} +\operation{bewegen()} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=60%} +```java +public class Raumschiff // Klassendefinition +{ // Attribute + int x; + int y; + + // Methoden + public void bewegen() { + ... + } +} +``` +:::: +::: + +## Von der Klasse zum Objekt + +::: {.columns align=center} +:::: {.column width=45%} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Raumschiff}{0, 0} +\attribute{x} +\attribute{y} +\operation{bewegen()} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=5%} +\Large $\Rightarrow$ +:::: + +:::: {.column width=45%} +\pause +\begin{tikzpicture} +\begin{object}[text width=4cm]{rs1: Raumschiff}{0, 0} +\attribute{x = 300} +\attribute{y = 565} +\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%} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Raumschiff}{0, 0} +\attribute{x} +\attribute{y} +\operation{bewegen()} +\end{class} +\end{tikzpicture} +:::: + +:::: {.column width=65%} +```java +public class Raumschiff { +int x; // Attribute +int y; +public Raumschiff () { // Konstruktor + x = 300; + y = 565; +} +``` +:::: +::: + +## \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. + +::: {.columns align=center} +:::: {.column width=40%} +\pause +`new Raumschiff(13, 12);`{.java} +:::: + +:::: {.column width=5%} +\Large $\Rightarrow$ +:::: + +:::: {.column width=45%} +\pause +\begin{tikzpicture} +\begin{object}[text width=4cm]{rs1: Raumschiff}{0, 0} +\attribute{x = 13} +\attribute{y = 12} +\end{object} +\end{tikzpicture} +:::: +::: + +## \faIcon{desktop} Arbeitsauftrag - Erzeuge neue Aliens 20min + +\centering +Bearbeite den Arbeitsauftrag **SpaceInvaders AA 2.pdf** + +## 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(); +``` + +## \faIcon{desktop} Arbeitsauftrag - Schiessen Schiessen Schiessen 15min + +\centering +Bearbeite den Arbeitsauftrag **SpaceInvaders AA 2.pdf** |
