--- author: Florian Fischer theme: metropolis aspectratio: 169 header-includes: | \makeatletter \beamer@ignorenonframefalse \makeatother --- ## Wiederholung - Java {.standout} \centering \scalebox{10}{ \faIcon{java} } ## Peinliche Sprüchekalender ::: columns :::: {.column width=50%} \pause ![](img/Copyrighted/spruchkalender.jpg){.center height=80%} :::: :::: {.column width=50%} \pause \vspace{3cm} Heute könnt ihr euren Eigenen bauen. \centering \huge \faIcon{child} :::: ::: ## Lange Tradition - `fortune` `fortune` existiert seit der Veröffentlichung in Version 7 Unix im Jahr 1979. ### Die Vergangenheit ![](img/fortune.png){.center width=70%} \pause ### Die Zukunft ![](img/cowfortune.png){.center width=70%} ## Wiederholung - Objektorientierte Modellierung \begin{center} \begin{tikzpicture} \begin{class}[text width=5cm]{Spruechekalender}{0,0} \attribute{monat: int} \attribute{aktuellerSpruch: String} \operation{naechsterTag()} \operation{gibSpruchAus()} \end{class} \end{tikzpicture} \end{center} ## Wiederholung - Objektorientiert Programmieren mit Java \small ::: columns :::: {.column width=60%} ```java class Spruechekalender { // Attribute int monat; String spruch; // Konstruktor void Spruechekalender() { monat = 1; spruch = "Auf los gehts los!"; } ... ``` :::: :::: {.column width=40%} ```java ... // Methoden void naechsterMonat() { monat = monat + 1; } void gibSpruchAus() { System.out.println(spruch); } } ``` :::: ::: ## \faIcon{desktop} Arbeitsauftrag - BlueJ Basics 10min Kopiere das Spruechekalender BlueJ-Projekt unter **Ablage/10b/vorlagen** und öffne es in BlueJ. ### BlueJ Basics * *Übersetze* das Projekt * Erzeuge ein Spruechekalender Objekt * *Inspiziere* das neue Objekt und gib den ersten Spruch aus ## \faIcon{desktop} Arbeitsauftrag - Java Basics 10min * Erstelle eine Methode `gibNaechsterSpruch()` die den nächsten Spruch zurück gibt **Tipp:** Eine Methodendefinition besteht aus ` ([Datentyp Parameter ...]) {...}`{.java} \vspace{0.1cm} * Erstelle eine bedingte Anweisung die, wenn der 4. Monat ist, den Spruch `"April, April der macht was er will!"` ("" nicht vergessen) [zurückgibt]{.underline} **Tipp:** Eine bedingte Anweisung hat die Form `if () { ... }` \vspace{0.2cm} * Denk dir für mindestens drei weitere Monate Sprüche aus und gib diese zurück \vspace{0.2cm} * Wenn es keinen besonderen Spruch gibt soll `"Schöner . Monat!"` zurückgegeben werden **Tipp:** Du kannst Zahlen und Texte mit dem `+`-Operator verketten \vspace{0.2cm} * Teste deine Änderungen ## \faIcon{desktop} Arbeitsauftrag - Java Basics II 10min * Speichere in der Methode `naechsterTag` auch den nächsten Spruch \vspace{0.3cm} * Schreibe eine Methode `gibAllesAus` die alle Sprüche ausgibt **Tipp:** Wiederholungen haben die Form: `for (; ; ) {...}` \vspace{0.3cm} * Teste deine Methode `gibAllesAus` ## Mehr Kreativität - Mondrian Unser Vorbild: Piet Mondrian (1872 – 1944) ![](img/mondrian_II_red_blue_yellow.jpg){.center height=60%} \pause Aber wir sind faule Künstler und wollen die Arbeit automatisieren. ## \faIcon{desktop} Arbeitsauftrag - Frei nach Mondrian Kopiere das Mondrian BlueJ-Projekt unter **Ablage/10b/vorlagen** und öffne es in BlueJ. 1. **Analysiert** in Zweierteams die bereits fertige Klasse `RECHTECK_MONDRIAN`. Beschreibt euch gegenseitig, wie sie arbeitet mit den Begriffen *Oberklasse, Unterklasse, Konstruktor, Aufruf des Oberklassenkonstruktors / einer Oberklassenmethode, Zufallszahl*. 2. In der Klasse `BILD` muss die Methode `BildZeichnen` gemäß dem folgenden Struktogramm implementiert werden. **Beschreibe**, unter welchen Umständen beim Aufruf `BildZeichnen(20)` [mehr als 20]{.underline} Rechtecke gezeichnet werden. 3. **Ergänze** die Methode `BILD.BildZeichnen` gemäß dem Struktogramm. 4. **Teste** die Methode mit den Aufrufen `BildZeichnen(100)` und `BildZeichnen(0)`. Die Zeichnung soll enden, wenn [mindestens]{.underline} ein Rechteck von jeder Farbe vorhanden ist. **Zeichne** ein berichtigtes Struktogramm des Abschnitts und **berichtige** die Methode entsprechend. ## \faIcon{desktop} Arbeitsauftrag - Struktogram ![](img/Copyrighted/Cornelsen4_S57_A5_Struktogram.png){.center height=90%}