Benutzer-Werkzeuge

Webseiten-Werkzeuge


g9:uebungen:attribute:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
g9:uebungen:attribute:start [2022/06/30 07:38] – [Beispiel 2: Klassen mit Attributen und Methoden] Martin Pabstg9:uebungen:attribute:start [2022/06/30 07:40] (aktuell) Martin Pabst
Zeile 97: Zeile 97:
 </WRAP> </WRAP>
  
-{{ :klassen2:attribute:pasted:20201122-202223.png?300}} +===== Aufgabe 1: RechteckHelfer =====
-===== Beispiel 4: Ampel ===== +
-Wir programmieren eine Klasse ''Ampel'', die eine einfache Fußgängerampel Zeichnet und Methoden ''schalteGrün()'' und ''schalteRot()'' zum Umschalten besitzt. Die Ampel besteht aus einem ''Rectangle''-Objekt und zwei ''Circle''-Objekten. Diese speichern wir als Attribute der Klasse ''Ampel''. Sie werden in der Methode ''init()'' instanziert und initialisiert. +
- +
-<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 ''setBorderColor'' der ''Rectangle''-Klasse!) +
-  * Füge ein gelbes Licht hinzu! +
-  * Füge eine "Fuß" hinzu! +
-</WRAP> +
- +
- +
-<HTML> +
- +
-<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Attribute4'}"> +
- +
-<script type="text/plain" title="Attribute4.java"> +
-Ampel a = new Ampel(); +
-a.init(); +
-a.schalteRot(); +
-Input.readString("Drücke die Taste Enter!"); +
-a.schalteGrün(); +
-Input.readString("Drücke die Taste Enter!"); +
-a.schalteAus(); +
- +
-class Ampel { +
-   Rectangle gehäuse; +
-   Circle lichtOben; +
-   Circle lichtUnten; +
- +
-   void init() { +
- +
-      // Instanzieren und Initialisieren des Gehäuses: +
-      gehäuse = new Rectangle(340, 140, 120, 220); +
-      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()! +
- +
-+
-</script> +
-</div> +
-</HTML> +
- +
-[[:klassen2:attribute:ampelloesung:start|Hier geht's zur Lösung!]] +
-===== Aufgabe 1: Tiere ===== +
-Erstelle eine Klasse ''Tier'' mit den Attributen ''art'' (Typ ''String''), ''name'' (Typ ''String'') und ''beinzahl'' (Typ ''int'') sowie einer Methode ''vorstellen()'', die im Falle der Katze Snoopy (mit zum Glück noch 4 Beinen) folgende Meldung ausgibt: +
-<code> +
-Ich heiße Snoopy und bin ein/e Katze mit 4 Beinen. +
-</code>  +
- +
-<HTML> +
- +
-<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'AttributeAufgabe1'}"> +
- +
-<script type="text/plain" title="AttributeAufgabe1.java"> +
-Tier s = new Tier(); +
-s.name = "Snoopy"; +
-s.art = "Katze"; +
-s.beinzahl = 4; +
- +
-Tier c = new Tier(); +
-c.name = "Caruso"; +
-c.art = "Hahn"; +
-c.beinzahl = 2; +
- +
-s.vorstellen(); +
-c.vorstellen(); +
- +
-// Jetzt bist Du dran: Definiere hier die Klasse Tier, so dass das Programm oben  +
-// fehlerfrei läuft. +
- +
- +
- +
- +
-</script> +
-</div> +
-</HTML> +
- +
-[[:klassen2:attribute:Aufgabe1Loesung:start|Hier geht's zur Lösung.]] +
- +
- +
-===== Aufgabe 2: Längeneinheiten ===== +
-<WRAP center round tip 80%> +
-Sind Dir schon mal Längenangaben wie //12 in// oder //17 zoll// oder //14%%''%%// begegnet? Sie bezeichnen dieselbe Längeneinheit [[https://www.typolexikon.de/inch/| Inch (im deutschen auch als "englischer Zoll" bezeichnet)]] und werden in Deutschland bespielsweise zur Angabe von Monitor-Diagonalen verwendet. In England und den USA sind sie neben den international vereinbarten [[https://de.wikipedia.org/wiki/Internationales_Einheitensystem|SI-Einheiten]] bis heute weit verbreitet. \\ \\  +
-**Umrechnung:** 1 in = 2.54 cm  +
-</WRAP> +
- +
-Schreibe eine Klasse ''Länge'' mit den Methoden ''speichere(double länge, String einheit)'', ''schreibeInch()'' und ''schreibeCm()'', die bei der Umrechnung der beiden Längeneinheiten hilft. Hier ein beispielhaftes Hauptprogramm zusammen mit der Ausgabe, durch das die Bedeutung der Methoden klar wird: +
-== Programm: == +
-<code myJava> +
-Länge a = new Länge(); +
-a.speichere(3.0, "inch"); +
-a.schreibeCm(); +
-a.speichere(25.4, "cm"); +
-a.schreibeInch(); +
-</code> +
-== Ausgabe == +
-<code> +
-7.62 cm +
-10 inch +
-</code> +
- +
-**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, in dem die Länge immer in cm gespeichert wird und nur beim Speichern von inch und der Ausgabe in inch umzurechnen. +
-<HTML> +
- +
-<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'AttributeAufgabe2'}"> +
- +
-<script type="text/plain" title="AttributeAufgabe2.java"> +
-Länge a = new Länge(); +
-a.speichere(3.0, "inch"); +
-a.schreibeCm(); +
-a.speichere(25.4, "cm"); +
-a.schreibeInch(); +
- +
-// Jetzt bist Du dran: schreibe die Definition der Klasse Länge! +
- +
- +
-</script> +
-</div> +
-</HTML> +
- +
-[[:klassen2:attribute:Aufgabe2Loesung:start|Hier geht's zur Lösung.]] +
- +
- +
-===== Aufgabe 3: RechteckHelfer =====+
 Schreibe eine Klasse ''RechteckHelfer'' mit den Methoden ''setzeLängeBreite(double länge, double breite)'', ''gibUmfang()'', ''gibFlächeninhalt()'' und ''gibDiagonalenlänge()''. Hier ein Hauptprogramm mit Ausgabe, das die Bedeutung der Methoden zeigt: Schreibe eine Klasse ''RechteckHelfer'' mit den Methoden ''setzeLängeBreite(double länge, double breite)'', ''gibUmfang()'', ''gibFlächeninhalt()'' und ''gibDiagonalenlänge()''. Hier ein Hauptprogramm mit Ausgabe, das die Bedeutung der Methoden zeigt:
 == Programm: == == Programm: ==
Zeile 270: Zeile 136:
  
  
-===== Aufgabe 4: Eine Klasse zum Bruchrechnen =====+===== Aufgabe 2: Eine Klasse zum Bruchrechnen =====
 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: 
   * ''subtrahiere(Bruch b2)''   * ''subtrahiere(Bruch b2)''
Zeile 362: Zeile 228:
 </WRAP> </WRAP>
  
-===== Aufgabe 5: Bild mit verschiedenen Tageszeiten ===== 
-{{ :klassen2:attribute:pasted:20201122-212921.png}} 
-{{:klassen2:attribute:pasted:20201122-212757.png }} 
-{{ :klassen2:attribute:pasted:20201122-212839.png }} 
- \\  
-Die Klasse Bild zeichnet das Bild einer Wüste mit Sonne und Himmel (s.u.) zu drei verschiedenen Tageszeiten. Sie besitzt die Methoden ''init()'' (zum Instanzieren und Initialisieren der Objekte), ''schalteMorgen()'' (schaltet auf das "Morgenbild" um), ''schalteMittag()'' und ''schalteAbend()''. \\ \\  
-**Tipp:** Orientiere Dich beim Programmieren am [[#beispiel_4ampel|Ampel-Beispiel oben]]! 
-<HTML> 
- 
-<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'AttributeAufgabe5'}"> 
- 
-<script type="text/plain" title="AttributeAufgabe5.java"> 
-Bild b = new Bild(); 
-b.init(); 
-b.schalteMorgen(); 
-b.schalteMittag(); 
-b.schalteAbend(); 
- 
-class Bild { 
- 
-} 
- 
-</script> 
-</div> 
-</HTML> 
- 
-[[:klassen2:attribute:aufgabe5loesung:startxx|Hier geht's zur Lösung!]] 
g9/uebungen/attribute/start.1656567500.txt.gz · Zuletzt geändert: 2022/06/30 07:38 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki