g9:uebungen:attribute:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
g9:uebungen:attribute:start [2022/06/30 07:36] – [Beispiel 2: Klassen mit Attributen und Methoden] Martin Pabst | g9:uebungen:attribute:start [2022/06/30 07:40] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 65: | Zeile 65: | ||
<script type=" | <script type=" | ||
- | |||
- | |||
- | |||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | <WRAP center round tip 60%> | ||
- | Führe das Programm schrittweise mit "step into ({{: | ||
- | Wenn sich der Aktuelle Ausführungspunkt des Programms (grün hinterlegte Programmzeile) gerade innerhalb einer Methode befindet, wird das Objekt, für das die Methode aufgerufen wurde, immer mit '' | ||
- | </ | ||
- | |||
- | {{ : | ||
- | |||
- | {{ : | ||
- | ===== Beispiel 4: Ampel ===== | ||
- | Wir programmieren eine Klasse '' | ||
- | |||
- | <WRAP center round todo 60%> | ||
- | Ich habe Dir noch etwas Arbeit im Programm hinterlassen (siehe die Kommentare). Vielleicht möchtest Du die Ampel auch noch etwas umfangreicher gestalten: | ||
- | * Umgib das Gehäuse mit einem dunkelgrauen Rahmen (Methode '' | ||
- | * Füge ein gelbes Licht hinzu! | ||
- | * Füge eine " | ||
- | </ | ||
- | |||
- | |||
- | < | ||
- | |||
- | <div class=" | ||
- | |||
- | <script type=" | ||
- | Ampel a = new Ampel(); | ||
- | a.init(); | ||
- | a.schalteRot(); | ||
- | Input.readString(" | ||
- | a.schalteGrün(); | ||
- | Input.readString(" | ||
- | a.schalteAus(); | ||
- | |||
- | class Ampel { | ||
- | | ||
- | | ||
- | | ||
- | |||
- | void init() { | ||
- | |||
- | // Instanzieren und Initialisieren des Gehäuses: | ||
- | gehäuse = new Rectangle(340, | ||
- | gehäuse.setFillColor(Color.gray); | ||
- | |||
- | // Ergänze den Code zum Instanzieren und initialisieren der beiden Lichter! | ||
- | // Die Lichter sollen initial beide mit der Farbe Color.darkgray gefüllt sein. | ||
- | |||
- | } | ||
- | |||
- | void schalteRot() { | ||
- | lichtOben.setFillColor(Color.red); | ||
- | lichtUnten.setFillColor(Color.darkgray); | ||
- | } | ||
- | |||
- | // Ergänze Methoden schalteGrün() und schalteAus()! | ||
- | |||
- | } | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | [[: | ||
- | ===== Aufgabe 1: Tiere ===== | ||
- | Erstelle eine Klasse '' | ||
- | < | ||
- | Ich heiße Snoopy und bin ein/e Katze mit 4 Beinen. | ||
- | </ | ||
- | |||
- | < | ||
- | |||
- | <div class=" | ||
- | |||
- | <script type=" | ||
Tier s = new Tier(); | Tier s = new Tier(); | ||
s.name = " | s.name = " | ||
s.art = " | s.art = " | ||
- | s.beinzahl | + | s.anzahlBeine |
- | Tier c = new Tier(); | + | Tier g = new Tier(); |
- | c.name = "Caruso"; | + | g.name = "Gerda"; |
- | c.art = "Hahn"; | + | g.art = "Huhn"; |
- | c.beinzahl | + | g.anzahlBeine |
- | + | ||
- | s.vorstellen(); | + | |
- | c.vorstellen(); | + | |
- | + | ||
- | // Jetzt bist Du dran: Definiere hier die Klasse Tier, so dass das Programm oben | + | |
- | // fehlerfrei läuft. | + | |
+ | s.stellDichVor(); | ||
+ | g.stellDichVor(); | ||
+ | class Tier { | ||
+ | | ||
+ | | ||
+ | int anzahlBeine; | ||
+ | void stellDichVor() { | ||
+ | println(" | ||
+ | } | ||
+ | } | ||
</ | </ | ||
</ | </ | ||
</ | </ | ||
- | [[: | + | <WRAP center round tip 60%> |
- | + | Führe das Programm schrittweise mit "step into ({{:klassen2: | |
- | + | Wenn sich der Aktuelle Ausführungspunkt des Programms (grün hinterlegte Programmzeile) gerade innerhalb einer Methode befindet, wird das Objekt, für das die Methode aufgerufen wurde, immer mit '' | |
- | ===== Aufgabe 2: Längeneinheiten ===== | + | |
- | <WRAP center round tip 80%> | + | |
- | Sind Dir schon mal Längenangaben wie //12 in// oder //17 zoll// oder // | + | |
- | **Umrechnung: | + | |
</ | </ | ||
- | Schreibe eine Klasse '' | + | ===== Aufgabe |
- | == Programm: == | + | |
- | <code myJava> | + | |
- | Länge a = new Länge(); | + | |
- | a.speichere(3.0, | + | |
- | a.schreibeCm(); | + | |
- | a.speichere(25.4, | + | |
- | a.schreibeInch(); | + | |
- | </ | + | |
- | == Ausgabe == | + | |
- | < | + | |
- | 7.62 cm | + | |
- | 10 inch | + | |
- | </ | + | |
- | + | ||
- | **Tipp: ** Natürlich benötigt die Klasse auch ein Attribut, um die Länge zu speichern. Es bietet sich an, nur ein einziges Attribut zu deklarieren, | + | |
- | < | + | |
- | + | ||
- | <div class=" | + | |
- | + | ||
- | <script type=" | + | |
- | Länge a = new Länge(); | + | |
- | a.speichere(3.0, | + | |
- | a.schreibeCm(); | + | |
- | a.speichere(25.4, | + | |
- | a.schreibeInch(); | + | |
- | + | ||
- | // Jetzt bist Du dran: schreibe die Definition der Klasse Länge! | + | |
- | + | ||
- | + | ||
- | </ | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | [[: | + | |
- | + | ||
- | + | ||
- | ===== Aufgabe | + | |
Schreibe eine Klasse '' | Schreibe eine Klasse '' | ||
== Programm: == | == Programm: == | ||
Zeile 252: | Zeile 136: | ||
- | ===== Aufgabe | + | ===== Aufgabe |
Studiere die Klasse Bruch im Programm unten genau und ergänze folgende Methoden: | Studiere die Klasse Bruch im Programm unten genau und ergänze folgende Methoden: | ||
* '' | * '' | ||
Zeile 344: | Zeile 228: | ||
</ | </ | ||
- | ===== Aufgabe 5: Bild mit verschiedenen Tageszeiten ===== | ||
- | {{ : | ||
- | {{: | ||
- | {{ : | ||
- | | ||
- | Die Klasse Bild zeichnet das Bild einer Wüste mit Sonne und Himmel (s.u.) zu drei verschiedenen Tageszeiten. Sie besitzt die Methoden '' | ||
- | **Tipp:** Orientiere Dich beim Programmieren am [[# | ||
- | < | ||
- | |||
- | <div class=" | ||
- | |||
- | <script type=" | ||
- | Bild b = new Bild(); | ||
- | b.init(); | ||
- | b.schalteMorgen(); | ||
- | b.schalteMittag(); | ||
- | b.schalteAbend(); | ||
- | |||
- | class Bild { | ||
- | |||
- | } | ||
- | |||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | [[: |
g9/uebungen/attribute/start.1656567385.txt.gz · Zuletzt geändert: 2022/06/30 07:36 von Martin Pabst