OO implementieren Teil II Objekte ergeben ein Ganzes.

18
IN FO R M A TIK /TEC H N IK OO implementieren Teil II Objekte ergeben ein Ganzes

Transcript of OO implementieren Teil II Objekte ergeben ein Ganzes.

Page 1: OO implementieren Teil II Objekte ergeben ein Ganzes.

INFORMATIK / TECHNIK

OO implementieren

Teil IIObjekte ergeben ein Ganzes

Page 2: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 2

INFORMATIK / TECHNIK

Das End-Produkt

Java-Applikation● Texteingabe die in einer Datei gespeichert wird und

beim Start wieder angezeigt wird● Zu realisierendes Gebilde

● Die Anwendung

Page 3: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 3

INFORMATIK / TECHNIK

Die Teile

4 existierende Bausteine● GUI

• Graphische Oberfläche

● Text• Textobjekt das angezeigt

bzw. gespeichert wird

● MyFileWriter• Schreibt Text in Datei

● MyFileReader• Liest Text aus Datei

Page 4: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 4

INFORMATIK / TECHNIK

Das Zusammenspiel der Komponenten

Wer muss wem welche Nachrichten bzw. Informationen zukommen lassen?

Welche Methoden stehen zur Verfügung?

GUI

Text

MyFileWriter MyFileReader

?

? ?

Schnittstelle zwischenden Komponenten mussbekannt sein.

Page 5: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 5

INFORMATIK / TECHNIK

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!

GUI

+ GUI()+ update() : void# addUserPanel() : JPanel

Text

+ Text()+ setText() : void+ getText() : String

MyFileReader

+ MyFileReader()+ readText() : String

MyFileWriter

+ MyFileWriterI()+ writeText() : void

Page 6: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 6

INFORMATIK / TECHNIK

Die Java-API

API = Application Programers Interface● Beschreibung der Schnittstellen, die der Program-

mierer nutzen kann.

Java bietet WEB-Lösung

Liste derKlassen

Beschreibung der gewähltenKlasse

Übersicht Konstruktor

Übersicht Methoden

Es folgen detaillierte BeschreibungVon Konstruktor und Methoden

Page 7: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 7

INFORMATIK / TECHNIK

Klassendiagramm

Klassen und deren Abhängigkeit aufzeigen Darstellung in UML

● Klassen und Beziehungen• einseitig, doppelseitig• Kardinalität• Ausprägung usw.

GUI

+ GUI()+ update() : void# addUserPanel() : JPanel

Text

+ Text()+ setText() : void+ getText() : String

MyFileReader

+ MyFileReader()+ readText() : String

MyFileWriter

+ MyFileWriterI()+ writeText() : void

1 1

1

1

Page 8: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 8

INFORMATIK / TECHNIK

Der Ablauf

OO-Sprachen sind grundlegend imperative Sprachen● Das Programm besteht aus einer Folge von

AnweisungenBeteiligteObjekte

Kellner bitte!

Sie wünschen?

Menü 21 mal Menü 2

Aufruf vonMethoden

Rückgabe vonWerten

Page 9: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 9

INFORMATIK / TECHNIK

Sequenzdiagramm

Darstellung in UML● Sequenzdiagramm

res:Artikel-Reservation

b:Bestellung bPos:Bestell-Position

lager:Artikel-Lager

gibBestellPos()reserviere()

bPos

gibArtikel()

artikel

gibAnzahl()

anzahl

reserviereArtikel(artikel, anzahl)

ok

Page 10: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 10

INFORMATIK / TECHNIK

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);

Page 11: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 11

INFORMATIK / TECHNIK

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

b:Bestellung

lager:Artikel-Lagernew ArtikelLager()

new Bestellung(lager)

lager

b

Page 12: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 12

INFORMATIK / TECHNIK

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(){}}

Page 13: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 13

INFORMATIK / TECHNIK

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;….

Page 14: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 14

INFORMATIK / TECHNIK

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

Page 15: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 15

INFORMATIK / TECHNIK

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

Page 16: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 16

INFORMATIK / TECHNIK

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

Page 17: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 17

INFORMATIK / TECHNIK

Merkblätter

O3 : Klassendiagramm O4 : Sequenzdiagramm J1 : Java-Programmstruktur J2 : Instanzierung

Page 18: OO implementieren Teil II Objekte ergeben ein Ganzes.

© René Probst Modul 226 II - 18

INFORMATIK / TECHNIK

Übungen

2.1. : Java-API lesen 2.2. : Programmsequenz 2.3. : Ein einfaches Java Programm 2.4. : “Textverarbeitung“