g9:uebungen:eigene_klassen:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
g9:uebungen:eigene_klassen:start [2021/01/20 12:56] – Martin Pabst | g9:uebungen:eigene_klassen:start [2022/06/30 07:23] (aktuell) – [Zweite Erweiterung: Rückgabe des Würfelergebnisses] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Eigene Klassen mit Methoden und Attributen ====== | ====== Eigene Klassen mit Methoden und Attributen ====== | ||
- | |||
- | <WRAP center round info 80%> | ||
- | **Aus dem G9-Lehrplan (Inf 9, Lehrbereich 3):** \\ \\ | ||
- | Die Schülerinnen und Schüler ... | ||
- | * analysieren Objekte aus ihrer Erfahrungswelt (z. B. Fahrzeuge, Personen) hinsichtlich ihrer Eigenschaften (Attribute) und Fähigkeiten (Methoden) und abstrahieren sie zu Klassen. Sie stellen Objekte und Klassen als Grundlage einer möglichen Implementierung grafisch dar. | ||
- | * deklarieren eine Klasse sowie die zugehörigen Attribute und Methoden in einer objektorientierten Programmiersprache. | ||
- | * verwenden bei der Implementierung Wertzuweisungen, | ||
- | </ | ||
- | |||
===== Beispiel 1: Würfel-Klasse (Methoden mit Parametern und Rückgabewerten) ===== | ===== Beispiel 1: Würfel-Klasse (Methoden mit Parametern und Rückgabewerten) ===== | ||
Zeile 114: | Zeile 105: | ||
==== Zweite Erweiterung: | ==== Zweite Erweiterung: | ||
- | Das Würfelergebnis | + | |
- | <code myjava> | + | Im Hauptprogramm |
- | Würfel w = new Würfel(); | + | |
- | int ergebnis = w.würfle(6); | + | <WRAP center round tip 80%> |
- | | + | Wir brauchen also eine Möglichkeit, |
- | </code> | + | </WRAP> |
< | < | ||
Zeile 127: | Zeile 118: | ||
<script type=" | <script type=" | ||
Würfel w = new Würfel(); | Würfel w = new Würfel(); | ||
- | int ergebnis | + | int summe = w.würfle(6) + w.würfle(6) + w.würfle(6); |
- | println(" | + | println(" |
class Würfel { | class Würfel { | ||
Zeile 283: | Zeile 274: | ||
</ | </ | ||
- | |||
- | |||
- | ===== Beispiel 4: ASCII-Art-Klasse ===== | ||
- | {{ : | ||
- | Kennst Du [[https:// | ||
- | Hier ein Beispielprogramm und seine Ausgabe: | ||
- | <code myjava> | ||
- | AsciiArt art = new AsciiArt(); | ||
- | |||
- | // Rechteck mit Breite 8, Höhe 6 | ||
- | art.zeichneRechteck(8, | ||
- | // Kreuz mit Balkendicke 3, Höhe 13 | ||
- | art.zeichneKreuz(2, | ||
- | // Kreis mit Radius 8 | ||
- | art.zeichneKreis(4, | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | < | ||
- | |||
- | <div class=" | ||
- | |||
- | <script type=" | ||
- | AsciiArt art = new AsciiArt(); | ||
- | |||
- | // Rechteck mit Breite 8, Höhe 6 | ||
- | art.zeichneRechteck(8, | ||
- | // Kreuz mit Balkendicke 3, Höhe 13 | ||
- | art.zeichneKreuz(2, | ||
- | // Kreis mit Radius 8 | ||
- | art.zeichneKreis(4, | ||
- | |||
- | |||
- | class AsciiArt { | ||
- | |||
- | void zeichneRechteck(int breite, int höhe, String farbe) { | ||
- | | ||
- | print(" | ||
- | gibAus(" | ||
- | print(" | ||
- | println(); | ||
- | |||
- | for(int i = 1; i <= höhe - 2; i++) { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | | ||
- | print(" | ||
- | gibAus(" | ||
- | print(" | ||
- | println(); | ||
- | |||
- | } | ||
- | |||
- | |||
- | void gibAus(String zeichen, int anzahl, String farbe) { | ||
- | for(int i = 1; i <= anzahl; i++) { | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | void zeichneKreis(int radius, String farbe) { | ||
- | for(int zeile = 0; zeile <= 2 * radius; zeile++) { | ||
- | | ||
- | double dx = radius + 0.5 - zeile; | ||
- | double dy = radius + 0.5 - spalte; | ||
- | if(Math.sqrt(dx * dx + dy * dy) <= radius) { | ||
- | | ||
- | } else { | ||
- | | ||
- | } | ||
- | } | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | void zeichneKreuz(int dicke, int höhe, String farbe) { | ||
- | | ||
- | int d = (höhe - dicke) / 2; // überstehende Balkenlänge | ||
- | for(int i = 1; i <= d; i++) { | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | for(int i = 1; i <= dicke; i++) { | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | for(int i = 1; i <= d; i++) { | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | } | ||
- | |||
- | } | ||
- | </ | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | ===== Aufgabe 1 ===== | ||
- | Schreibe eine Klasse '' | ||
- | |||
- | [[.aufgabe1Tipp: | ||
- | ===== Aufgabe 2 ===== | ||
- | Schreibe eine Klasse '' | ||
- | * Die Methode '' | ||
- | * Die Methode '' | ||
- | |||
- | [[.aufgabe2: | ||
- | |||
- | |||
- | ===== Aufgabe 3 (etwas schwerer...) ===== | ||
- | {{ : | ||
- | Erweitere die Klasse '' | ||
- | |||
- | [[.aufgaben: |
g9/uebungen/eigene_klassen/start.1611143760.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)