Objektorientiertes Konstruieren

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Einführung in die Programmierung Ausführbare Klassen
der Universität Oldenburg
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
IF-ELSE-IF-Ketten Weiter mit PP..
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Programmieren mit JAVA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
Optimale Ursprungsgerade
Klassenhierarchien, Vererbung
Parameterübergabemechanismen für den Methodenaufruf
EPROG Tutorium #3 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Learning By Doing Übungen GPanel Quadratfenster mit pixelunabhängigen Windowkoordinaten (doubles) Zweckmässige Standardwerte (defaults) 01 x 0 1 y // WbzEx5.java.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
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.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
 Präsentation transkript:

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.

Klassendeklaration (Gerüst) Learning By Doing Klassendeklaration (Gerüst) Dateiname Instanzvariablen Konstruktor Methode (Akzessor) Methode Klassenname // 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

Applikationsklasse Learning By Doing Applikationsklasse Dateiname Import Klassenname main Instanzierung Ausschreiben // 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 import dafür statt println() überall Console.println()

Ausschreiben mit printf() (nur J2SE V5) 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)

Console Learning By Doing 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); } Double lesen Auf Taste warten Programm beenden Dokumentation: siehe Klasse ch.aplu.util.Console J2SE V1.4: statt import static nur import Alle Methoden f() von Console mit Console.f() aufrufen

Standardform für Applikationen Learning By Doing 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(); Konstruktor Instanz der Applikationsklasse J2SE V1.4: statt import static nur import Alle Methoden f() von Console mit Console.f() aufrufen

Bemerkungen/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

Aufgaben zum objektorientierten Konstruieren 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:

Aufgaben zum objektorientierten Konstruieren 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