Click here to load reader

Objekte Mit BlueJ-2008

  • View
    2.466

  • Download
    6

Embed Size (px)

DESCRIPTION

Einführung in die objektorientierte Java-Programmierung mit BlueJ

Text of Objekte Mit BlueJ-2008

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -1-

Hansa-Gymnasium

1. Ein Grafiksystem in JavaZur Thematik Inhaltliches Ziel des aktuellen Semesters ist die Erstellung eines Grafiksystems in Java. Gedacht ist an ein vektororientiertes Grafiksystem, ein zweidimensionales Wohnungseinrichtungssystem fr die Kunden eines Mbelhauses. Es eignet sich gut, um in Verfahren der objektorientierten Modellierung und Programmierung einzufhren. Als Benutzungsoberflche wird die Entwicklungsumgebung BlueJ genutzt, die explizit fr die Lehre entwickelt wurde und kostenfrei verfgbar ist (http://www.bluej.org). Mit dieser Entwicklungsumgebung kannst du zunchst mit einem stark reduzierten, vereinfachten Modell interagieren und damit die notwendigen Grundvorstellungen von Objekten, Attributen, Methoden, Nachrichten und Klassen aufbauen. Anschlieend setzt du den Programmquellcode in Beziehung zum Verhalten der Objekte und erweitern ihn, um das System schrittweise auszubauen. Dies geschieht in mehreren Schritten: 1. interaktiv Gruppen von Mbeln erstellen 2. Klassen fr Mbelgruppen erstellen, Aggregation (Teile-Ganzes-Beziehung) thematisieren; Beispiele: Schrankwand zunchst interaktiv erstellen, anschlieend Klasse Schrankwand mit n Schrnken. Ebenso z.B. Sitzgruppe, Doppelbett, Computerarbeitsplatz, Computerraum. 3. bestehende Klassen ausbauen 4. neue Mbelklassen hinzufgen Vektorformat vs. Pixelformat Im Computerbereich sind zwei Arten von Anwendungen bzw. Dateiformaten gebruchlich. Einerseits Malprogramme wie MS-Paint, bei denen alle Abbildungen aus einzelnen Punkten zusammengesetzt sind. Man kann in der Bedienoberflche dieser Programme zwar Linien, Rechtecke oder Kreise zum Zeichnen auswhlen, sowie die Objekte aber dargestellt sind kann die Anwendung diese nicht mehr als solche Verschieben, da nur Menge von Punkten gezeichnet wird. Der Bildschirmpunkt ist das einzige Objekt, welches diese Anwendungen wirklich kennen. Nachtrglich ist es auch nicht mehr mglich die Farbe oder die Breite einer Linie zu verndern. Beim Vergrern eines derartig gemalten Bildes werden schrge oder runde Linien zu recht stufigen Gebilden.

Deutlich flexibler sind die Zeichenprogramme, wie z.B. StarOffice Draw. Derartige Programme besitzen intern eine Beschreibung fr Objekte wie Linien, Kreise und Rechtecke. Du kannst daher die Objekte jederzeit erneut auswhlen und jede ihrer Eigenschaften verndern. Auch beim Vergrern eines Ausschnittes bleiben alle Linien glatt und gleichmig, da die Darstellung des Objektes der neuen Auflsung angepasst wird. Da auch die Druckqualitt entsprechend hoch ist, arbeiten alle Konstruktionsprogramme objektorientiert.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -2-

Hansa-Gymnasium

Normzeichen fr das Zeichnen von Mbeln Fr das Zeichnen von Mbeln gibt es genormte Darstellungen, die auch fr das vorliegende Projekt zur Anwendung kommen sollen.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -3-

Hansa-Gymnasium

2. Klassen und ObjekteBevor eine Grafikanwendung wie das beschriebene Mbelsystem realisierbar ist mssen erst einmal ein Paar Grundlagen geklrt werden, vor allem die Begriffe Klasse und Objekt. Einfhrung Zur Einfhrung kannst du dir die Elemente eines Computer-Desktops ansehen: Buttons auf der Taskleiste, Programmlinks, Dokumente, usw. Fragestellungen: Was seht ihr? Welche Gemeinsamkeiten haben die einzelnen Elemente auf dem Desktop? Welche Eigenschaften haben diese Elemente? Was kann ich mit diesen Elementen machen? Ergebnisse: Es gibt Gruppen gleichartiger Elemente, z.B. Buttons, Dokumente, Programme und Links. Die Gruppen werden als Klassen bezeichnet. Die einzelnen Elemente sind die Objekte der jeweiligen Klasse. Die Elemente bestehen u.a. aus Icon und Namen (Attribute). Sie reagieren unterschiedlich (Programme werden gestartet, Dokumente geffnet), man kann sie verschieben usw. (Methoden). Weitere mgliche Beispiele sind: Mediator Textverarbeitung (Abstze, Zeichen) Prsentationsprogramm eigentlich jedes Programm mit einer grafischen Benutzeroberflche. Aufgabe: Nenne Beispiele fr Klassifizierungen aus dem tglichen Leben! Beispiele: Krperformen (s. Arbeitsblatt Krperformen) Tiere, Pflanzen, Menschen, Auto und ein konkretes Auto zur Unterscheidung zwischen Klasse und Exemplar (Instanz). Der natrliche Umgang mit Dingen/Objekten Natrlicherweise sind wir den Umgang mit Dingen gewohnt. Wir knnen Dinge sehen oder fhlen, aber Dinge knnen auch nur in der Vorstellung bestehen. ber die Dinge des Lebens liee sich weiter philosophieren, aber das muss an anderen Stelle geschehen. Im Umgang mit den Dingen haben wir gelernt: Dinge besitzen Eigenschaften, Dinge knnen sich verndern, Vernderungen haben eine Ursache, wenn wir sie auch nicht in jedem Fall verstehen. Wir knnen abstrahieren. So haben wir beispielsweise erkannt: Dinge knnen aus Teilen bestehen Dinge knnen kategorisiert werden.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -4-

Hansa-Gymnasium

Genau dies spielt auch im Zusammenhang mit Klassen und Objekten eine Rolle. Modellbildung Programmierung ist ein Modellbildungsprozess. Bei allen Modellbildungen betrachtet man einen Ausschnitt der realen Welt und versucht ihn mit einem formalen System, z.B. einer Computersprache zu beschreiben. Wesentlicher Teil des Modellbildungsprozesses ist es diejenigen Objekte zu identifizieren, die auch im Modell eine Rolle spielen. Im weiteren Verlauf der Modellbildung geht es dann darum die identifizierten Objekte zu kategorisieren und in Klassen zusammen zu fassen. Klasse Klassen fassen Objekte mit gleichen Eigenschaften und gleichem Verhalten zusammen. Schreiben wir in Java eine Klassendefinition, dann beschreiben wir in ihr, welche Eigenschaften und welches Verhalten ein Objekt htte, das dieser Klasse zugehren soll, wenn wir es erzeugen wrden. Objekt Ein Objekt ist ein konkretes Exemplar, eine Instanz, die zu einer Klasse gehrt. Deutlich werden die Begriffe, wenn man auf alltgliche Beispiele abhebt. Relativ wichtig in unserem Alltag ist die Klasse Automobil, die bestimmte Fahrzeuge zusammenfasst. Der alte Bully des Deutschlehrers ist dann ein konkretes Objekt, eine Instanz der Klasse Auto, genau wie der Mercedes des Physiklehrers ein Objekt darstellt. Im Zusammenhang mit der Textverarbeitung lassen sich dann Klassen wie Absatz, Zeichen oder Seite identifizieren. Eine konkrete Instanz der Klasse Absatz und damit ein Objekt der Textverarbeitung wre dann der vorliegende Textteil.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -5-

Hansa-Gymnasium

3. Objekte und Klassen mit BlueJArbeiten mit der Oberflche von BlueJ Die Arbeit mit BlueJ erlaubt einen einfachen Umgang mit Klassen und Objekten in der Programmiersprache Java. Beim ersten Start sieht die Oberflche von BlueJ sehr aufgerumt aus.

Fr die ersten Schritte bentigst du die Menleiste, in der sich der Punkt Projekt findet. In dem Projekt-Men findet du den Unterpunkt Projekt ffnen... ber den du einen Dialog zum ffnen von BlueJ-Projekten erhlt. Im Verzeichnis Abschnitt 3 der Materialien zu dieser Einfhrung findet sich u.a. das BlueJ-Projekt Figuren. Nach dem Laden dieses Projektes ergibt sich das folgende Bild. Im Hauptfenster von BlueJ ist ein Diagramm zu sehen, das die Klassen des Projektes Figuren und ihren Zusammenhang darstellt. Konkret sind dies die Klassen Dreieck, Quadrat, Kreis und Leinwand. Die Pfeile machen deutlich, dass die drei geometrischen Klassen die Klasse Leinwand benutzen. Klicke jetzt mit der rechten Maustaste auf die Klasse Kreis und whle aus dem Kontextmen den ersten Menpunkt new Kreis() aus. Im anschlieenden Dialog, der dich nach einem Namen fr die Instanz von Kreis fragt kannst du einfach auf OK klicken und damit die Vorgabe kreis1 akzeptieren. Es sollte sich jetzt das folgende Bild ergeben. In der Objektleiste von BlueJ ist jetzt die Instanz kreis1 der Klasse Kreis abgelegt. Vermutlich erfllt diese Darstellung noch nicht deine Erwartungen, da kein Kreis auf dem Bildschirm zu sehen ist.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -6-

Hansa-Gymnasium

Methoden aufrufen Um den zugehrigen Kreis auf den Bildschirm zu bekommen klickst du mit der rechten Maustaste auf das Objekt in der Objektleiste, worauf sich sein Kontextmen ffnet.

Hier findest du alle Methoden, die die Klasse Kreis zur Verfgung stellt. Wenn du die Methode sichtbarMachen aufrufst, dann erscheint auch ein Kreis auf dem Bildschirm und zwar in einem speziellen Fenster, welches zur Klasse Leinwand gehrt.

Aus dem Kontextmen von kreis1 heraus kannst du jetzt weitere Methoden aufrufen und damit z.B. den Kreis horizontal bzw. vertikal verschieben. Manche dieser Methoden, z.B. horizontalBewegen erwarten eine Eingabe. Hier gibst du eine Zahl ein z.B. 50, worauf der kreis1 sich um 50 Pixel horizontal verschiebt. Etwas aufpassen musst du, wenn du die Methode farbeAendern aufrufst, hier erwartet der kreis1 keine Zahl, sondern einen Text der die Farbe angibt. Dieser Text muss in Anfhrungsstriche gesetzt werden und es stehen auch nur die im Dialogfenster angegebenen Farben zur Verfgung.

Eine Methode kann mehr als nur einen Parameter besitzen. Die Methode groesseAendern des Klasse Dreieck z.B. erwartet die Angabe von zwei Parametern, nmlich Hhe und Breite.

Uwe Debacher 2008

Objektorientierte Modellierung mit BlueJ -7-

Hansa-Gymnasium

Datentypen in Java Ein Datentype beschreibt die Art der Information, die Java z.B. als Parameter einer Methode erwartet. Viele der Methoden von Kreis erwarten Zahlen als Parameter, der zugehrige Datentyp heit in Java int, was eine Abkrzung von integer, dem englischen Begriff fr ganze Zahl ist. Die Methode farbeAendern erwartet einen Text, eine Zeichenkette. Der zugehrige Datentyp heit in Java String. Strings oder

Search related