1 / 9

Objektorientiertes Konstruieren

Objektorientiertes Konstruieren. Learning By Doing. Objektorientiertes Konstruieren. Der Bauplan für ein Objekt ist die Klassendeklaration. Ein Objekt besitzt Eigenschaften und Verhalten (Fähigkeiten). In der Regel gibt es zu einer Klasse mehrere Objekte, Instanzen genannt.

armina
Download Presentation

Objektorientiertes Konstruieren

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektorientiertes Konstruieren Learning By Doing Objektorientiertes Konstruieren • Der Bauplan für ein Objekt ist die Klassendeklaration • Ein Objekt besitzt Eigenschaften und Verhalten (Fähigkeiten) • In der Regel gibt es zu einer Klasse mehrere Objekte, Instanzen genannt. In Java werden die Eigenschaften durch Instanzvariablen, das Verhalten durch Methoden(Funktionen) beschrieben.

  2. Klassendeklaration Learning By Doing Dateiname Instanzvariablen Konstruktor Methode Klassenname Methode (Akzessor) Methode (Akzessor) Klassendeklaration (Gerüst) // Bankkonto.java class Bankkonto { double kapital; double zinssatz; int anlagejahre = 0; Bankkonto(double kap, double zs) // Konstruktor { } double kontostand() // Gibt aktuellen Kontostand zurück { } int laufzeit() // Gibt die Anlagezeit in Jahren zurück { } void jahresabrechnung() // Führt die Jahresabrechung durch // Setzt neues Kapital, neue Laufzeit { } }

  3. Applikationsklasse Learning By Doing Dateiname Import Klassenname main Ausschreiben Instanzierung Applikationsklasse // WbzEx1.java import static ch.aplu.util.Console.*; class WbzEx1 { public static void main(String[] args) { Bankkonto konto = new Bankkonto(200, 2.5); while (konto.kontostand() < 400) konto.jahresabrechnung(); println("Laufzeit mindestens " + konto.laufzeit() + " Jahre"); } } J2SE V1.4:statt import static nur importdafür statt println() überall Console.println()

  4. printf() Learning By Doing Ausschreiben mit printf() (nur J2SE V5) // WbzEx1a.java import static ch.aplu.util.Console.*; class WbzEx1a { public static void main(String[] args) { Bankkonto konto = new Bankkonto(200, 2.5); while (konto.kontostand() < 400) konto.jahresabrechnung(); printf("Laufzeit mindestens %d Jahre", konto.laufzeit()); } } Formatierungsstring Dokumentation: siehe Klasse Formatter (J2SE V5)

  5. Console Learning By Doing Double lesen Auf Taste warten Programm beenden Einlesen auf Console // WbzEx1b.java import static ch.aplu.util.Console.*; class WbzEx1b { public static void main(String[] args) { println("Anfangseinlage: "); double anfangseinlage = readDouble(); Bankkonto konto = new Bankkonto(anfangseinlage, 2.5); while (konto.kontostand() < 2*anfangseinlage) konto.jahresabrechnung(); println("Laufzeit mindestens " + konto.laufzeit() + " Jahre"); println("Irgendeine Taste..."); readChar(); System.exit(0); } } Dokumentation: siehe Klasse ch.aplu.util.Console J2SE V1.4:statt import static nur importAlle Methoden f() von Console mit Console.f() aufrufen

  6. Standardform Learning By Doing Konstruktor Instanz derApplikationsklasse Standardform für Applikationen // WbzEx1c.java import static ch.aplu.util.Console.*; class WbzEx1c { WbzEx1c() { println("Anfangseinlage: "); double anfangseinlage = readDouble(); Bankkonto konto = new Bankkonto(anfangseinlage, 2.5); berechnen(konto, anfangseinlage); println("Laufzeit mindestens " + konto.laufzeit() + " Jahre"); println("Irgendeine Taste..."); readChar(); System.exit(0); } void berechnen(Bankkonto konto, double anfangseinlage) { while (konto.kontostand() < 2*anfangseinlage) konto.jahresabrechnung(); } public static void main(String[] args) { new WbzEx1c(); } } J2SE V1.4:statt import static nur importAlle Methoden f() von Console mit Console.f() aufrufen

  7. Zusammenfassung Learning By Doing Bemerkungen/Zusammenfassung • Prozedurale Programmierung ist Teil der OOP (Klasse in Methoden aufteilen) • Im main() eine Instanz der Applikationsklasse erzeugen, Konstruktor verwenden • Initialisierung von Instanzvariablen: - implizite auf 0 (false, null) - explizite bei der Deklaration oder im Konstruktor • Akzessoren (getter-Methoden): lesender Zugriff • Mutatoren (setter-Methoden): schreibender Zugriff • Parameterübergabe an Methoden: nur Call-by-value • Statt print(), println() eher printf() einsetzen • Statt System.out.print() eher ch.aplu.util.Console einsetzen

  8. Aufgabe 1 Learning By Doing Aufgaben zum objektorientierten Konstruieren Aufgabe 1: Deklarieren Sie in einer Applikationsklasse eine Methode quadrat, die ein einziges Quadrat erzeugt. Verwenden Sie diese Methode, um folgende Figur zu zeichnen:

  9. Aufgabe 2 Learning By Doing Aufgaben zum objektorientierten Konstruieren Aufgabe 2: a) Deklarieren Sie ein Klasse Blume, die eine Blume mit Stiel in vorgebbarer Richtung zeichnet. Testen Sie sie mit einer main-Methode aus. b) Deklarieren Sie eine Applikationsklasse, die damit einen Blumenstrauss zeichnet. Aufgabe 2a Aufgabe 2b

More Related