180 likes | 265 Views
OO implementieren. Teil II Objekte ergeben ein Ganzes. Das End-Produkt. Java-Applikation Texteingabe die in einer Datei gespeichert wird und beim Start wieder angezeigt wird Zu realisierendes Gebilde Die Anwendung. Die Teile. 4 existierende Bausteine GUI Graphische Oberfläche Text
E N D
OO implementieren Teil II Objekte ergeben ein Ganzes
Das End-Produkt • Java-Applikation • Texteingabe die in einer Datei gespeichert wird und beim Start wieder angezeigt wird • Zu realisierendes Gebilde • Die Anwendung Modul 226
Die Teile • 4 existierende Bausteine • GUI • Graphische Oberfläche • Text • Textobjekt das angezeigtbzw. gespeichert wird • MyFileWriter • Schreibt Text in Datei • MyFileReader • Liest Text aus Datei Modul 226
Das Zusammenspiel der Komponenten • Wer muss wem welche Nachrichten bzw. Informationen zukommen lassen? • Welche Methoden stehen zur Verfügung? GUI Schnittstelle zwischenden Komponenten mussbekannt sein. ? Text ? ? MyFileWriter MyFileReader Modul 226
Die Methoden • Datenaustausch erfolgt durch Nutzung der Methoden (Schnittstellen) der Komponenten • Die genauen Kenntnisse der Methoden ist unerlässlich, für die Nutzung einer Klasse! MyFileReader + MyFileReader() + readText() : String GUI Text + GUI() + update() : void# addUserPanel() : JPanel + Text() + setText() : void + getText() : String MyFileWriter + MyFileWriterI() + writeText() : void Modul 226
Die Java-API • API = Application Programers Interface • Beschreibung der Schnittstellen, die der Program-mierer nutzen kann. • Java bietet WEB-Lösung Beschreibung der gewähltenKlasse Liste derKlassen Übersicht Konstruktor Übersicht Methoden Es folgen detaillierte Beschreibung Von Konstruktor und Methoden Modul 226
Klassendiagramm • Klassen und deren Abhängigkeit aufzeigen • Darstellung in UML • Klassen und Beziehungen • einseitig, doppelseitig • Kardinalität • Ausprägung usw. MyFileReader 1 + MyFileReader() + readText() : String Text GUI 1 1 + Text() + setText() : void + getText() : String + GUI() + update() : void # addUserPanel() : JPanel MyFileWriter 1 + MyFileWriterI() + writeText() : void Modul 226
Der Ablauf • OO-Sprachen sind grundlegend imperative Sprachen • Das Programm besteht aus einer Folge von Anweisungen Beteiligte Objekte Kellner bitte! Sie wünschen? Aufruf vonMethoden Menü 2 1 mal Menü 2 Rückgabe vonWerten Modul 226
Sequenzdiagramm • Darstellung in UML • Sequenzdiagramm res:Artikel-Reservation b:Bestellung bPos:Bestell-Position lager:Artikel-Lager reserviere() gibBestellPos() bPos gibArtikel() artikel gibAnzahl() anzahl reserviereArtikel(artikel, anzahl) ok Modul 226
Referenzen • 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); Modul 226
Ablauf der Erzeugung • 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 lager:Artikel-Lager new ArtikelLager() lager new Bestellung(lager) b:Bestellung b Modul 226
Der Konstruktor • 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 main-Methode aufgerufen. • Heisst gleich wie die Klasse, hat aber (im Gegensatz zu Methdoen) keinen Datentyp • In Java public class Test{ public Test(){} } Modul 226
Umsetzung in Java • 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ügenPATH ….;C:\j2sdk1.4.2_07\bin;…. Modul 226
Java Projekt • Editor (EditPlus) • Compiler • Runtime public class First{ public static void main(String[] args){ System.out.println(“\nHello World“); } } C:\dir\javac First.java C:\dir\java First Modul 226
Literatur : Goll-Weiss-Müller • 2.4 Erstes Programmbeispiel mit Objekten • 3.3.2.1 Die Dokumetation der Java API • 3.4 Programmerzeugung und -ausführung • 3.5 Das Java Development Kit • 4.3 Erzeugen von Objekten • 4.4 Initialisierung von Objekten mit Konstruktoren Modul 226
Stichworte (1) • APIhttp://de.wikipedia.org/wiki/Application_Programming_Interface • Java-API (Version 1.4.2)http://java.sun.com/j2se/1.4.2/docs/api/ • Schnittstellehttp://de.wikipedia.org/wiki/Schnittstelle_%28objektorientierte_Programmierung%29 • Imperative Programmierunghttp://de.wikipedia.org/wiki/Imperative_Programmierung • Deklarative Programmierunghttp://de.wikipedia.org/wiki/Deklarative_Programmierung • Sequenzdiagrammhttp://de.wikipedia.org/wiki/Sequenzdiagramm Modul 226
Merkblätter • O3 : Klassendiagramm • O4 : Sequenzdiagramm • J1 : Java-Programmstruktur • J2 : Instanzierung Modul 226
Übungen • 2.1. : Java-API lesen • 2.2. : Programmsequenz • 2.3. : Ein einfaches Java Programm • 2.4. : “Textverarbeitung“ Modul 226