Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Teil II Objekte ergeben ein Ganzes

Ähnliche Präsentationen


Präsentation zum Thema: "Teil II Objekte ergeben ein Ganzes"—  Präsentation transkript:

1 Teil II Objekte ergeben ein Ganzes
OO implementieren Teil II Objekte ergeben ein Ganzes TEIL II Idee: LEGO-Bausteine zusammenfügen Die unten erwähnten Lernziele sind noch nicht vertieft zu behandeln sondern mehr im Sinn einer ersten Berührung mit dem Thema zu verstehen. Es geht hier darum, einen Überblick zu erhalten und gewisse Fachausdrücke erstmals einordnen zu können. Die Schüler müssen aus bestehenden Klassen ein funktionsfähiges System zusammenfügen. Die Einzelteile sind: - GUI - Text - MyFileReader - MyFileWriter Die Aufgabe bedingt, dass zuerst die API der betreffenden Klassen genau studiert werden. Lernziel 1 : Lesen von API Lernziel 2 : UML Klassendiagramm lesen Im Klassenverband den Ablauf der nötig ist erarbeiten. Was muss zuerst instanziert werden? Wer erhält welche Referenzen zugeteilt? Lernziel 3 : Instanzierung von Klassen Lernziel 4 : UML Sequenzdiagramm Realisierung der Klasse GoLego und Testen der Funktion Lernziel 5 : einfache Java-Programmierung Lernziel 6 : Testen nach Vorgabe Vorgehen 1. Einführung in die OO-Welt mit Präsentation. Beziehung zur realen Welt aufzeigen 2. Begriff Objekt als Exemplar aufzeigen und danach Begriff Klasse als Bauplan klar darlegen 3. Bedeutung von OO-Bausteinen und deren "Angebot" darlegen --> API kennen, Umgang mit Javadoc 4. Neue Sprache zeigen, die den Sachverhalt visualisiert --> UML 5. Darlegen, dass Objekte vor der Nutzung erzeugt werden müssen (evtl. Präsentation) 6. Möglichen Ablauf besprechen, um die Problemstellung LEGO zu lösen 7. Einführen des Sequenzdiagramms 8. Das Programm GoLegoApp erstellen (vormachen-nachmachen / selbständig ...) 9. Testen der ganzen Angelegenheit

2 Das End-Produkt Java-Applikation
Texteingabe die in einer Datei gespeichert wird und beim Start wieder angezeigt wird Zu realisierendes Gebilde Die Anwendung Als Motivation wird das Endprodukt so wie sein konzeptioneller Aufbau aufgezeigt. Das erste Java-Programm besteht also aus dem Zusammenbau von Komponenten. © René Probst Modul 226

3 4 existierende Bausteine
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 Die 4 Bausteine des Systems © René Probst Modul 226

4 Das Zusammenspiel der Komponenten
Wer muss wem welche Nachrichten bzw. Informationen zukommen lassen? Welche Methoden stehen zur Verfügung? GUI Schnittstelle zwischen den Komponenten muss bekannt sein. ? Text ? ? MyFileWriter MyFileReader Erst das Zusammenspiel der Komponenten ergibt ein neues System. Es müssen die Richtigen Kontakte geknüpft werden. Beispiele : Der Trainer muss die Spieler kennen Der Koch muss die Kellner kennen und diese dann die Gäste Usw. © René Probst Modul 226

5 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 Ohne Kenntnisse der Methoden der einzelnen Klassen kann das System nicht gebaut werden. Es muss also eine umfassende Dokumentation bestehen. Hinweis: Somit ist bei OO automatisch der Zwang zu guter und umfassender Dokumentation der Klassen (und somit auch des Codes) gegeben. Ohne eine solche Doku kann eine Klasse später kaum mehr gewartet und schon gar nicht andersweitig genutzt werden. © René Probst Modul 226

6 API = Application Programers Interface
Die Java-API API = Application Programers Interface Beschreibung der Schnittstellen, die der Program-mierer nutzen kann. Java bietet WEB-Lösung Beschreibung der gewählten Klasse Liste der Klassen Die API stellt den ersten Kontakt zur Java-Welt dar. Damit ist auch gleich die Bedeutung der API gegeben. Die Lernenden müssen dieses Werkzeug nutzen können. Mit der Übung wird der Umgang mit der API geschult. Dabei muss die compareTo-Methode der String-Klasse gesucht werden. Weiter sollen die Lernenden erkennen, dass es mit compareToIgnoreCase auch noch eine weitere Methode gibt, die genutzt werden könnte. Wichtig ist, dass sie auf Grund der Dokumentation auch den Unterschied in der Nutzung der beiden Methoden erkennen. Die API wird von nun an ein ständiger Begleiter sein, wenn es darum geht irgendwelche Übungen in Java zu realisieren. Übersicht Konstruktor Übersicht Methoden Es folgen detaillierte Beschreibung Von Konstruktor und Methoden © René Probst Modul 226

7 Klassen und deren Abhängigkeit aufzeigen Darstellung in UML
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 GUI Text Nach dem bisher nur isolierte Klassen in UML Darstellung betrachtet wurden, wird nun ein System gezeigt. Die Lernenden erkennen hier, dass ähnlich dem ERD auch Beziehungslinien und Kardinalitäten vorkommen. Hinweis : Es folgt hier keine vertiefte Betrachtung der Klassendiagramme. Dies folgt im 2. Schritt des Spiralmodells. 1 1 + GUI() + update() : void # addUserPanel() : JPanel + Text() + setText() : void + getText() : String MyFileWriter 1 + MyFileWriterI() + writeText() : void © René Probst Modul 226

8 OO-Sprachen sind grundlegend imperative Sprachen
Der Ablauf OO-Sprachen sind grundlegend imperative Sprachen Das Programm besteht aus einer Folge von Anweisungen Beteiligte Objekte Kellner bitte! Sie wünschen? Aufruf von Methoden Mit dem Klassendiagramm wurde der statische Aufbau des Systems gezeigt. Ein Computerprogramm ist aber eine sehr dynamische Sache. Daher muss auch eine Möglichkeit bestehen, solche zeitlichen Abfolgen (oder Prozesse) zu symbolisieren. Auch wenn das OO-Paradigma sich stark von jenem der klassischen Programmierung unterscheidet, so ist beiden eigen, dass es sich um imperative Sprachen handelt, bei denen eine Folge von Befehlen abgearbeitet wird (im Gegensatz zu deklarativen Sprachen wie z.B. SQL) Menü 2 1 mal Menü 2 Rückgabe von Werten © René Probst Modul 226

9 Darstellung in UML Sequenzdiagramm Sequenzdiagramm
res:Artikel-Reservation b:Bestellung bPos:Bestell-Position lager:Artikel- Lager reserviere() gibBestellPos() bPos gibArtikel() artikel gibAnzahl() In der UML werden Abläufe durch Sequenzdiagramme repräsentiert. Es handelt sich um eine relativ einfache Technik. Zu beachten ist, dass der Pfeil vom Aufrufer weg und hin zum Aufgerufenen gerichtet ist und dass die Methode Teil des Aufgerufenen ist. Hinweis : Eine vertiefte Betrachtung folgt im 2. Durchlauf. anzahl reserviereArtikel(artikel, anzahl) ok © René Probst Modul 226

10 Objekte müssen sich kennen! Aufruf eines Objektes :
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); Das Verständnis für die Bedeutung der Referenzen ist für OO unerlässlich. Daher muss dieser Begriff hier gut ausgebildet werden. Es ist klar, dass dies ein sehr abstrakter Schritt ist. Aber er ist unumgänglich und muss so früh wie möglich eingebracht und immer wieder repetiert werden. Es ist auch wichtig, dass die beiden üblichen Verfahren (Konstruktor, Methode) erwähnt werden. Tip: Vergleich mit dem Alltag. Hier stellen sich die Objekte einander vor, in dem sie Visitenkarten (Referenzen) austauschen. Eine solche Visitenkarte stellt nicht das Objekt selber dar, sondern ermöglicht die Kontaktaufnahme. © René Probst Modul 226

11 Sinnvolle Reihenfolge der Objekterzeugung
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() Mit dieser Voraussetzung können die Lernenden nun den Ablauf des Startvorgangs für die zu realisierende Anwendung erarbeiten und die Übung O2.2 lösen. Es braucht aber sicherlich Hilfe der Lehrperson, da die Vorgabe mit Interface arbeitet. Hier muss eben ein entsprechender Tip den Lernenden gegeben werden. Wahrscheinlich drängt sich ein gemeinsames Erarbeiten an der Tafel auf. Tip : Evtl an der Wandtafel ein eigenes Beispiel miteinander machen, bei dem in einer speziellen Erzeugerklasse die main-Methode für die Objekterzeugung genutzt wird. public class creatorClass{ public static void main(String[] args){ ClassA objA = new ClassA(); …… } lager new Bestellung(lager) b:Bestellung b © René Probst Modul 226

12 Jede Klasse verfügt über einen Konstruktor
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(){} } Bedeutung des Konstruktors hervorheben. Ohne Konstruktor gibt es keine Objekte. Er beschreibt, wie eine Objekt erzeugt werden muss. Hinweis: Auf die Möglichkeiten von Default-Konstruktor und Überladen wird erst im 2. Durchlauf eingeganen. © René Probst Modul 226

13 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ügen PATH ….;C:\j2sdk1.4.2_07\bin;…. Hier ein paar wichtige Aspekte aufzeigen, die bei der Arbeit mit Java wichtig sind. Java ist Gratis und kann von java.sun.com geladen werden Wir verwenden JDK 1.4.2 Umgebung muss eingerichtet werden (Kommandozeilen-Tools!)  PATH-Variable bei Windows Für einfaches Arbeiten sind Hilfsmittel nötig  EditPlus Vorbereitet für Java-Projekte Erfordert eine feste Dateistruktur mit Parent\bin und Parent\src, wobei Parent für beliebigen Namen steht Java-Dateien in src, die class-Dateien werden nach bin kompiliert Tool1 = Javac Tool2 = Java Tool3 = DOS-Box © René Probst Modul 226

14 Editor (EditPlus) Compiler Runtime Java Projekt public class First{
public static void main(String[] args){ System.out.println(“\nHello World“); } C:\dir\javac First.java Nun ist alles vorbereitet und die Lernenden können ein erstes Programm in EditPlus schreiben und ausführen.  Übung O 2.3 Zuerst diese Beispiel hier machen  HelloWorld und danach Beispiel aus Buch Seite 41 abschreiben und Verhalten studieren. Nach diesem Beispiel soll dann selbständig die Umsetzung des Text-Beispiels (O 2.4) folgen. C:\dir\java First © René Probst Modul 226

15 Literatur : Goll-Weiss-Müller
2.4 Erstes Programmbeispiel mit Objekten 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 © René Probst Modul 226

16 API http://de.wikipedia.org/wiki/Application_Programming_Interface
Stichworte (1) API Java-API (Version 1.4.2) Schnittstelle Imperative Programmierung Deklarative Programmierung Sequenzdiagramm © René Probst Modul 226

17 J1 : Java-Programmstruktur J2 : Instanzierung
Merkblätter O3 : Klassendiagramm O4 : Sequenzdiagramm J1 : Java-Programmstruktur J2 : Instanzierung © René Probst Modul 226

18 2.3. : Ein einfaches Java Programm 2.4. : “Textverarbeitung“
Übungen 2.1. : Java-API lesen 2.2. : Programmsequenz 2.3. : Ein einfaches Java Programm 2.4. : “Textverarbeitung“ © René Probst Modul 226


Herunterladen ppt "Teil II Objekte ergeben ein Ganzes"

Ähnliche Präsentationen


Google-Anzeigen