Ein schematischer Kirschbaum in Java

Slides:



Advertisements
Ähnliche Präsentationen
Klassen - Verkettete Liste -
Advertisements

Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Definition von Klassen in Java
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Abstrakte Klassen.
Ein Beispiel in Java.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Eigene Metoden (Turtle-Paket (C) Taulien 2003)
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Ham EST Das Schwein Schmatz.. Fressen Beginnen wir.... mit einer Geschichte:
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Klassendefinitionen in Java
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
1.3 Klassen und Beziehungen
1.3 Klassen und Beziehungen
EPROG Tutorium #3 Philipp Effenberger
Starten der Entwicklungsumgebung (IDE)
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Schnittstellen.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
Venusspiegel und Marsschild
JAVA lernen: Methoden.
Zwei Denkansätze zur Klasse Schlange
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Die Klasse Geist.
Einführung in die Programmierung mit Java
Bewegung des Pacman.
Die Klasse Vielfrass in Java
Felder in Java.
Informatik 10 – 3. Bedingte Anweisungen
Die Struktur einer Java-Klasse
Grundkurs Informatik 11-13
6. Wiederholungen und Zählschleifen
Informatik 10 – 3. Bedingte Anweisungen
Von Cem, Maurice und lars
4. Modellieren und Diagrammarten
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Polymorphie Überladen
Objektorientiertes Modellieren und Programmieren mit Java
Interfaces Definition von Interfaces Verwendung von Interfaces
2. Vererbung und Kapselung
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
9. Vererbung und Polymorphie
Implementieren von Klassen
Grundkurs Informatik 11-13
Juli 19 Informatik Kurse
 Präsentation transkript:

Ein schematischer Kirschbaum in Java

Die Klasse Kirschbaum public class Kirschbaum { private char jahreszeit; private Rechteck stamm; private Kreissektor krone; private Kreissektor kirsche1; private Kreissektor kirsche2; private Rechteck linkerRand; private Rechteck rechterRand; private Rechteck boden; private Rechteck saft; private int xSaft; private int ySaft; private int safthoehe; Die Klasse benötigt für die korrekte zeitliche Abfolge ein Attribut jahreszeit. Außerdem braucht sie fünf Rechtecke und drei Kreissektoren als Referenzattribute, um Baum und Fass graphisch darstellen zu können. Die Menge des Kirschsafts beschreiben drei weitere Attribute.

Der Konstruktor public Kirschbaum (int kirschRadius) { jahreszeit = 'S'; stamm = new Rechteck (); stamm.setzePosition (8*kirschRadius, 8*kirschRadius); stamm.setzeBreite (4*kirschRadius); stamm.setzeHoehe (20*kirschRadius); stamm.setzeFarbe ("braun"); krone = new Kreissektor (); krone.setzeGesamtwinkel (360); krone.setzeRadius (10*kirschRadius); kirsche1 = new Kreissektor (); kirsche1.setzeGesamtwinkel (360); kirsche1.setzePosition (4*kirschRadius, 6*kirschRadius); kirsche1.setzeRadius (kirschRadius); kirsche1.setzeFarbe ("rot"); kirsche2 = new Kreissektor (); kirsche2.setzeGesamtwinkel (360); kirsche2.setzePosition (14*kirschRadius, 12*kirschRadius); kirsche2.setzeRadius (kirschRadius); kirsche2.setzeFarbe ("rot");

linkerRand = new Rechteck (); linkerRand.setzePosition (25*kirschRadius, 17*kirschRadius); linkerRand.setzeBreite (kirschRadius); linkerRand.setzeHoehe (11*kirschRadius); linkerRand.setzeFarbe ("braun"); rechterRand = new Rechteck (); rechterRand.setzePosition (30*kirschRadius, 17*kirschRadius); rechterRand.setzeBreite (kirschRadius); rechterRand.setzeHoehe (11*kirschRadius); rechterRand.setzeFarbe ("braun"); boden = new Rechteck (); boden.setzePosition (26*kirschRadius, 27*kirschRadius); boden.setzeBreite (4*kirschRadius); boden.setzeHoehe (kirschRadius); boden.setzeFarbe ("braun"); xSaft = 26*kirschRadius; ySaft = 18*kirschRadius; safthoehe = 9*kirschRadius; saft = new Rechteck (); saft.setzeBreite (4*kirschRadius); saft.setzeFarbe ("rot"); zeichne(); }

Der Konstruktor hat den Parameter kirschRadius, damit die Benutzerin genau festlegen kann, welche Größe der Kirschbaum haben soll. Am Anfang muss dem Kirschbaum genau gesagt werden, in welcher jahreszeit er sich befindet, damit er später in weitere Jahreszeiten umschalten kann. Innerhalb des Konstruktors müssen alle Referenzattribute erzeugt werden, damit man später damit den Baum und das Fass zeichnen kann. Zum Zeichnen verwenden wir eine Methode zeichne (), die auch beim Jahreszeitenwechsel benötigt wird. Damit wir später in jeder Jahreszeit den Saft im Fass korrekt zeichnen können, merken wir uns seine x- und y-Koordinaten sowie seine Höhe im gefüllten Zustand.

Sie ist private, da die Benutzerin sie nicht aufrufen soll. Die Zeichnemethode private void zeichne () { switch (zustand) case 'W': krone.werdeUnsichtbar (); kirsche1.werdeUnsichtbar (); kirsche2.werdeUnsichtbar (); saft.setzePosition (xSaft, ySaft + safthoehe*1/3); saft.setzeHoehe (safthoehe * 2/3); break; case 'F': krone.setzeFarbe ("weiss"); krone.werdeSichtbar (); saft.setzePosition (xSaft, ySaft + safthoehe*2/3); saft.setzeHoehe (safthoehe * 1/3); break; case 'S': […] case 'H': […] } Die Methode gibt für alle vier Jahreszeiten an, welche Farbe die Krone und welche Höhe der Saft hat. Sie ist private, da die Benutzerin sie nicht aufrufen soll.

Der Jahreszeitenwechsel public void naechsteJahreszeit () { switch (jahreszeit) case 'W': jahreszeit = 'F'; break; case 'F': jahreszeit = 'S'; break; case 'S': jahreszeit = 'H'; break; case 'H': jahreszeit = 'W'; break; } zeichne (); Die Methode wechselt aus jeder der vier Jahreszeiten in die nachfolgende. Anschließend zeichnet sie den Baum und das Fass im neuen Zustand. Sie ist public, da die Benutzerin sie nutzen können soll. Die break-Anweisungen sind wichtig, weil der Kirschbaum sonst immer in den Zustand 'W' wechseln würde.