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.
Download
Report
Transcript 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.
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