OO implementieren
Teil II
Objekte ergeben ein Ganzes
INFORMATIK / TECHNIK
Das End-Produkt
INFORMATIK / TECHNIK
 Java-Applikation
● Texteingabe die in einer Datei gespeichert wird und
beim Start wieder angezeigt wird
● Zu realisierendes Gebilde
● Die Anwendung
© René Probst
Modul 226
II - 2
Die Teile
INFORMATIK / TECHNIK
 4 existierende Bausteine
● GUI
• Graphische Oberfläche
● Text
• Textobjekt das angezeigt
bzw. gespeichert wird
● MyFileWriter
• Schreibt Text in Datei
● MyFileReader
• Liest Text aus Datei
© René Probst
Modul 226
II - 3
Das Zusammenspiel der Komponenten
INFORMATIK / TECHNIK
 Wer muss wem welche Nachrichten bzw.
Informationen zukommen lassen?
GUI
Schnittstelle zwischen
den Komponenten muss
bekannt sein.
?
Text
?
MyFileWriter
?
MyFileReader
 Welche Methoden stehen zur Verfügung?
© René Probst
Modul 226
II - 4
Die Methoden
INFORMATIK / TECHNIK
 Datenaustausch erfolgt durch Nutzung der
Methoden (Schnittstellen) der Komponenten
MyFileReader
GUI
+ GUI()
+ update() : void
# addUserPanel() : JPanel
Text
+ Text()
+ setText() : void
+ getText() : String
+ MyFileReader()
+ readText() : String
MyFileWriter
+ MyFileWriterI()
+ writeText() : void
 Die genauen Kenntnisse der Methoden ist
unerlässlich, für die Nutzung einer Klasse!
© René Probst
Modul 226
II - 5
Die Java-API
INFORMATIK / TECHNIK
 API = Application Programers Interface
● Beschreibung der Schnittstellen, die der Programmierer nutzen kann.
 Java bietet WEB-Lösung
Beschreibung der gewählten
Klasse
Liste der
Klassen
Übersicht Konstruktor
Übersicht Methoden
Es folgen detaillierte Beschreibung
Von Konstruktor und Methoden
© René Probst
Modul 226
II - 6
Klassendiagramm
INFORMATIK / TECHNIK
 Klassen und deren Abhängigkeit aufzeigen
 Darstellung in UML
● Klassen und Beziehungen
• einseitig, doppelseitig
• Kardinalität
• Ausprägung usw.
MyFileReader
Text
GUI
+ GUI()
+ update() : void
# addUserPanel() : JPanel
1
1 + Text()
+ setText() : void
+ getText() : String
1
+ MyFileReader()
+ readText() : String
MyFileWriter
1
+ MyFileWriterI()
+ writeText() : void
© René Probst
Modul 226
II - 7
Der Ablauf
INFORMATIK / TECHNIK
 OO-Sprachen sind grundlegend imperative
Sprachen
● Das Programm besteht aus einer Folge von
Anweisungen
Beteiligte
Objekte
Kellner bitte!
Sie wünschen?
Menü 2
Aufruf von
Methoden
1 mal Menü 2
Rückgabe von
Werten
© René Probst
Modul 226
II - 8
Sequenzdiagramm
INFORMATIK / TECHNIK
 Darstellung in UML
● Sequenzdiagramm
res:ArtikelReservation
reserviere()
b:Bestellung
bPos:BestellPosition
lager:ArtikelLager
gibBestellPos()
bPos
gibArtikel()
artikel
gibAnzahl()
anzahl
reserviereArtikel(artikel, anzahl)
ok
© René Probst
Modul 226
II - 9
Referenzen
INFORMATIK / TECHNIK
 Objekte müssen sich kennen!
● „Visitenkarte“ für die Kontaktaufnahme
 Aufruf eines Objektes :
● „Peter. Gib mir den Stift.“
● lager.reserviereArtikel(artikel, anzahl)
 Erzeugen einer Referenz durch Instanzierung
● artikelLager = new ArtikelLager();
 Bekanntmachen (2 Verfahren)
● res = new ArtikelReservation (artikelLager);
● res.setArtikelLager(artikelLager);
© René Probst
Modul 226
II - 10
Ablauf der Erzeugung
INFORMATIK / TECHNIK
 Sinnvolle Reihenfolge der Objekterzeugung
● Bottom-Up Verfahren
• Zuerst Objekte die nur einseitig referenziert sind
• Danach in der Abhängigkeit aufsteigend
● Benutzen einer „Erzeuger-Klasse“
• Wiederverwendbarer Lösungsansatz  Muster (Pattern)
:AppCreator
new ArtikelLager()
lager:ArtikelLager
lager
new Bestellung(lager)
b:Bestellung
b
© René Probst
Modul 226
II - 11
Der Konstruktor
INFORMATIK / TECHNIK
 Jede Klasse verfügt über einen Konstruktor
● Beschreibt, wie die entsprechenden Objekte
aufzubauen sind.
• Initialisieren von Werten
• Einrichten von Beziehungen zu andern Objekten
● Wird durch eine andere Klasse oder die mainMethode aufgerufen.
● Heisst gleich wie die Klasse, hat aber (im Gegensatz
zu Methdoen) keinen Datentyp
● In Java
public class Test{
public Test(){}
}
© René Probst
Modul 226
II - 12
Umsetzung in Java
INFORMATIK / TECHNIK
 Java
● OO-Sprache die an C angelehnte Strukturen aufweist
● Benötigt eine Runtime für die Codeausführung
• Interpretierte Sprache mit einem Zwischencode (class-Datei)
• Code läuft auf jedem System, wenn Runtime verfügbar ist
● Compiler für die Erzeugung des Zwischencodes
● Entwicklungsumgebung mit Java-Library
• Pfad zu Java-Library in Umgebungsvariable einfügen
PATH ….;C:\j2sdk1.4.2_07\bin;….
© René Probst
Modul 226
II - 13
Java Projekt
INFORMATIK / TECHNIK
 Editor (EditPlus)
public class First{
public static void main(String[] args){
System.out.println(“\nHello World“);
}
}
 Compiler
C:\dir\javac First.java
 Runtime
C:\dir\java First
© René Probst
Modul 226
II - 14
Literatur : Goll-Weiss-Müller
INFORMATIK / TECHNIK
 2.4
 3.3.2.1
 3.4
 3.5
 4.3
 4.4
© René Probst
Erstes Programmbeispiel mit Objekten
Die Dokumetation der Java API
Programmerzeugung und -ausführung
Das Java Development Kit
Erzeugen von Objekten
Initialisierung von Objekten mit
Konstruktoren
Modul 226
II - 15
Stichworte (1)
INFORMATIK / TECHNIK
 API
http://de.wikipedia.org/wiki/Application_Programming_Interface
 Java-API (Version 1.4.2)
http://java.sun.com/j2se/1.4.2/docs/api/
 Schnittstelle
http://de.wikipedia.org/wiki/Schnittstelle_%28objektorientierte_Programmierung%29
 Imperative Programmierung
http://de.wikipedia.org/wiki/Imperative_Programmierung
 Deklarative Programmierung
http://de.wikipedia.org/wiki/Deklarative_Programmierung
 Sequenzdiagramm
http://de.wikipedia.org/wiki/Sequenzdiagramm
© René Probst
Modul 226
II - 16
Merkblätter
INFORMATIK / TECHNIK
 O3 :
 O4 :
 J1 :
 J2 :
© René Probst
Klassendiagramm
Sequenzdiagramm
Java-Programmstruktur
Instanzierung
Modul 226
II - 17
Übungen
INFORMATIK / TECHNIK
 2.1. :
 2.2. :
 2.3. :
 2.4. :
© René Probst
Java-API lesen
Programmsequenz
Ein einfaches Java Programm
“Textverarbeitung“
Modul 226
II - 18