1 Grundlagen der Objektorientierung

Ähnliche Dokumente
1 Grundlagen der Objektorientierung

Kapitel 4 Einfache Methoden der Klasse MAMPFI

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Ein erstes "Hello world!" Programm

1 Fragen aus dem Unterricht zu Projekt Garten

3. Die Programmiersprache Java

Kapitel 7 Schnittstelle als Außenansicht eines Objekts Seite 1 / 9

Kapitel 10 Mampfi im Labyrinth

Kapitel 1: Die ersten Schritte 1

4. Modellieren und Diagrammarten

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

Tutorial zum Umgang mit Scratch

Objektorientierte Beschreibung einfacher Vektorgrafiken

Löschen löscht den letzten Pinselstrich.

Rückgabewerte von Methoden

Bedienung von BlueJ. Klassenanzeige

Das aktuelle Objekt der Klasse AMPEL gibt an die Objekte gruen, gelb und rot der Klasse LAMPE die Botschaft, die Methode aus() aufzurufen.

2. Vererbung und Kapselung

Umsetzung einer Klassenkarte in einer Programmiersprache

Kapitel 11 Objektkommunikation mit Antworten

Praktische Informatik 1

OOP mit BlueJ Informatik 11

Kapitel 9 Das Labyrinth

Java-Programmierung mit NetBeans

Wie erstelle ich Diagramme mit einer Tabellenkalkulation?

In BlueJ geht es einfach

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

1. Lineare Funktionen und lineare Gleichungen

Übungsblatt 1. Java Vorkurs (WS 2017)

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Optische Täuschungen 2. Teil

Kapitel 2 Objekte in der Entwicklungsumgebung BlueJ

3. Bedingte Anweisungen

Am Anfang werden die Attribute deklariert public class Kreis {

Kapitel 6 Punkteliste Lernziele: Deklaration, Initialisierung, Felder, Wiederholung mit fester Anzahl

Javakurs für Anfänger

Folge 1 - Arbeitsblatt 1

Comic Life 3.x. Fortbildung zum Mediencurriculum

Kapitel 3 Die erste Klasse selbst erstellen: MAMPFI

3. Das erste eigene Programm mit Greenfoot: Litte Crab

Auf der Bühne ist was los!

Einführung in die Programmierung für NF MI. Übung 07

Javakurs für Anfänger

Access Programmierung. Ricardo Hernández García. 1. Ausgabe, November 2013 ACC2013P

Ziehen Sie jetzt mit gedrückter linker Maustaste ein Rechteck auf dem Formulareditor auf. Lassen Sie die Maustaste dann los. Was passiert?

5 Das Projekt Apfelwein

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

InDesign CS6. Grundlagen. Peter Wies, Linda York. 1. Ausgabe, 2. Aktualisierung, November 2013 INDCS6

Lerne programmieren mit Sequentielle Programmierung mit VPL

7. Objektorientierung. Informatik II für Verkehrsingenieure

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.

APPMODULE EnOcean KNXnet/IP App Dokumentation

1 Karol stellt sich vor

Kapitel 5 Zustand eines Objekts

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Um Listen in übersichtlicher Form zu präsentieren, verwenden Sie zur bequemen Eingabe und übersichtlichen Ausgabe Tabellen.

Methoden und Wrapperklassen

Kurz FAQ - Typo3. Login zum Editieren

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

ADT: Verkettete Listen

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ

Eine Präsentation, die sich für unterschiedliche Zuschauergruppen eignet

Kapitel 14 Das Labyrinth optimieren

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Selbststudium OOP1 SW Programmieren 1 - H1103 Felix Rohrer

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Einstieg in die Informatik mit Java

TrySim -Projektierungsanleitung Einführung 1

3 Geoverarbeitung mit dem ModelBuilder

03. übung. InDesign. medienwerkstatt // seite 1

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Die Anleitung ist optimiert für Microsoft Word 02 und Microsoft Paint.

Informatik 1 mit BlueJ

Anwendung Kamel-Simulation

OOP. Mit Zahlen rechnen. Henrik Horstmann

3.3 Arbeiten mit Rastern

1. Das Koordinatensystem

Begriffe 1 (Wiederholung)

6. Zeiger Allgemeines Definition eines Zeigers

Hannover: Lebensqualität in der Südstadt

Text, Formeln und Graphiken in Word 2007

Funktionen in JavaScript

5.5.8 Öffentliche und private Eigenschaften

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

So gibst du die Richtung mit einem Kompass vor

Anregungen zu Übung 2

Diagramme erstellen mit Diagrammvorlagen

Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden.

1 Modellierung einer Uhr

Kennen, können, beherrschen lernen was gebraucht wird

< UNTERRICHTSMATERIAL /> Calliope mini. Blumenpflegestation

Serienbrief erstellen

Visual Basic Express Fehlerermittlung

Ereignisse Auf Benutzereingaben reagieren

Einstieg in die Informatik mit Java

Transkript:

Kapitel 1 Grundlagen der Objektorientierung Seite 1/8 1 Grundlagen der Objektorientierung Dieses Kapitel stellt eine solide, pragmatische Einführung in die fundamentalen Konzepte der Objektorientierung dar. Es werden die Begriffe Klasse, Objekt und Methode wiederholt. Obwohl ein erster Blick auf den Quelltext geworfen wird, wird an dieser Stelle noch dieses Kapitel nicht auf Details der Java- Programmierung eingegangen. Da dieses Kapitel auch eine Einführung in die Entwicklungsumgebung BlueJ darstellt, ist der Text mit vielen Bildern begleiten. Dies ermöglicht eine schnelle Orientierung. 1.1 Objekt, Klasse Wenn wir ein Programm entwickeln, dann erstellen wir immer ein Modell eines Ausschnitts der realen Welt. Dieser Ausschnitt setzt sich aus Objekten zusammen, die im Anwendungsbereich vorkommen. Diese Objekte müssen im zu erstellenden Computermodell geeignet repräsentiert werden. Diskussion: Unser Gymnasium Programm zur Stundenplanerstellung Programm zur Verwaltung der Schülerdaten Programm zur Verwaltung der Lernmittelfreien Bücherei Objekte können klassifiziert bzw. kategorisiert werden. Eine Klasse beschreibt also alle Objekte einer Kategorie. Diskussion: Klasse und Objekt Welche Objekte gibt es an unserer Schule? Welche Klassen? Ist der Begriff Auto eine Klasse oder ein Objekt? 1.2 Objekte erzeugen Öffne nach dem Starten der Entwicklungsumgebung BlueJ das Projekt Figuren.

Kapitel 1 Grundlagen der Objektorientierung Seite 2/8 Abbildung 1.1: Projekt Figuren in BlueJ Die Klassen dieses Projekts heißen Kreis, Quadrat, Dreieck und Leinwand. Erzeuge ein Objekt mit dem Namen kreis1, indem du mit der rechten Maustaste auf die Klasse Kreis klickst und im Kontextmenü new Kreis() wählst. Das Objekt kreis1 erscheint als rotes Symbol in der Objektleiste. Hinweis: Sollte die Symbole der Klassen gestreift sein, musst du zuerst den Button Compile drücken. Abbildung 1.2: Objekt kreis1 Übung 1.1 Erzeuge zwei weitere Kreisobjekte. Erzeuge dann ein Quadratobjekt. Beachte: Von einer Klasse können beliebig viele Objekte erzeugt werden. Anschaulich kannst du dir eine Klasse als Bauanleitung denken. Die Objekte werden beim Erzeugen nach dieser Anleitung gebaut.

Kapitel 1 Grundlagen der Objektorientierung Seite 3/8 1.3 Attribute und Attributwerte Alle Objekte einer Klasse haben die gleichen Attribute, jedoch nicht zwingend die gleichen Attributwerte. In BlueJ lassen sich Attribute und Attributwerte mit Hilfe des Objektinspektors anzeigen. Du kannst ihn durch einen Mausklick mit der rechten Taste und dem Kontextmenüpunkt inspect öffnen. Abbildung 1.3: Objektinspektor zeigt den Zustand des Objekts kreis1 Übung 1.2 Untersuche die Attributwerte der beiden Kreise und des Quadrats, die du erzeugt hast. Warum sind die Attributwerte der beiden Kreise gleich? Worin unterschieden sich die beiden Kreise dennoch? Hinweis: Alle momentanen Attributwerte eines Objekts nennt man auch Zustand eines Objekts. 1.4 Methoden aufrufen Ein Rechts-Klick auf ein Kreis-Objekt erzeugt wiederum ein Kontextmenü mit mehreren Einträgen. Wähle den Eintrag void sichtbarmachen(). Nun erscheint das Objekt kreis1 in einem separaten Fenster. Probiere auch die Einträge nachrechtsbewegen(), nachuntenbewegen(), unsichtbarmachen() und sichtbarmachen() aus. Über das Kontextmenü kannst du dem Objekts eine Botschaft, mit dem Auftrag etwas zu tun, schicken. Die Fähigkeit etwas zu tun nennt man Methoden. Übung 1.3: Was geschieht, wenn du die Methode nachuntenbewegen() zweimal aufrufst? Oder dreimal? Was passiert, wenn du unsichtbarmachen() zweimal aufrufst?

Kapitel 1 Grundlagen der Objektorientierung Seite 4/8 1.5 Parameter und Datentypen Rufe nun die Methode horizontalbewegen() auf. Es erscheint ein Dialog, der dich um eine Eingabe auffordert. Übung 1.4: Untersuche die Methoden vertikalbewegen(), langsambewegen() und groesseaendern(). Finde heraus, wie man den Kreis um 70 Einheiten (Bildschirmpunkte) nach links(!!) bewegt. Die zusätzlichen Werte, die manche Methoden benötigen, werden Parameter genannt. Diese legt der Programmierer beim erstellen der Methode fest, genauso wie mögliche Ausgabewerte. Abbildung 1.4: Methodenaufruf Du kennst dies bereits bei Funktionen aus dem Mathematikunterricht. Beispielsweise heißt bei der Funktion quadrat(x) der (Eingabe-)Parameter x. Abbildung 1.4: Ein- und Ausgabewerte bei Funktionen bzw. Methoden Manche Methoden haben keinen Ausgabewert. In diesem Fall wird vor dem Methodennamen void 1 notiert. Übung 1.5: Welche Eingabewerte haben die Methoden farbeaendern(...) und groesseaendern()? Wie nennt man den Eingabewert bei Methoden? 1 engl.: leer, Fehlstelle, Lücke

Kapitel 1 Grundlagen der Objektorientierung Seite 5/8 Ein Datentyp gibt an, welche Art von Information übergeben werden kann. Zum Beispiel bezeichnet der Typ int ganze Zahlen. Vergleiche wieder mit dem Beispiel aus der Mathematik oben: Der Eingabewert x ist vom Datentyp R (reelle Zahlen) + Der Ausgabewert y ist vom Datentyp R 0 (positive reelle Zahlen mit Null) Im Dialogfenster der Methode horizontalbewegen() erscheint die Zeile void horizontalbewegen(int entfernung) Die Bedeutung der einzelnen Teile kannst du der Abbildung 1.5. entnehmen void horizontalbewegen(int entfernung) Datentyp Ausgabewert Methodenname(Datentyp_Eingabewert Parameterbezeichner) Abbildung 1.5: Festlegung der Datentypen bei Methoden Hinweis: Wenn du später selbst Methoden schreibst, musst du dir vorher genau überlegen, welche Datentypen die Parameter und der Ausgabewert haben müssen. Deshalb mache dich schon jetzt mit der Schreibweise vertraut! Die Methode farbeaendern() hat einen Parameter vom Typ String. Übung 1.4 Ruf die Methode farbeaendern() eines deiner Kreis-Objekte auf und übergib den Parameter rot (mit Anführungszeichen). Übung 1.5: Was passiert, wenn du eine Farbe angibst, die nicht unterstützt wird? Übung 1.6: Rufe die Methode farbeaendern() auf und gib eine Farbe ohne Anführungszeichen an. Was passiert? Warum?

Kapitel 1 Grundlagen der Objektorientierung Seite 6/8 Übung 1.7 (Ergänzung zu 1.3 Attribute und Attributwerte) Falls noch nicht geschehen, mache die drei Kreise und das Quadrat sichtbar und öffne für zwei Kreise den Objektinspektor Abbildung 1.6: Attributwerte verschiedener Objekte der gleichen Klasse Erinnere dich an Übung 1.2. Dort hatten beide Kreise die gleichen Attributwerte. Vergleiche jetzt. Ändere über Methodenaufrufe zwei Attributwerte. Vergleiche die Änderungen im Objektinspektor mit den Änderungen im Fenster rechts oben. In der Gegenüberstellung der beiden Objektinspektoren wird nochmals deutlich, dass jedes Objekt der gleichen Klasse die gleichen Attribute hat, jedoch unterschiedliche Attributwerte haben kann. Ein Klassendiagramm Kreis und 2 Objektdiagramme Kreis1 und Kreis 2 Abbildung 1.7: Klassen- und Objektdiagramm

Kapitel 1 Grundlagen der Objektorientierung Seite 7/8 Übung 1.8: Vergleiche mit Hilfe des Objektinspektors die Attribute eines Objekts der Klasse Kreis mit denen eines Objekts der Klasse Quadrat! Übung 1.9: Erzeuge ein Bild ähnlich wie die unten gezeigte Abbildung 1.6. Abbildung 1.4: Darstellung in Übung 1.9 1.6 Objektinteraktionen Übung 1.10: Öffne das Projekt Zeichnung. Erzeuge eine Instanz der Klasse Zeichnung und rufe die Methode zeichne() auf. Probiere auch die beiden anderen Methoden. Übung 1.11: Wie zeichnet deiner Meinung nach die Klasse Zeichnung diese Zeichnung? Wir haben in diesem Projekt eine zusätzliche Klasse Zeichnung. Diese Klasse ist so programmiert, dass sie automatisch das tut, was du in Übung 1.9 manuell getan hast. Wir erzeugen also eine Instanz dieser Klasse Zeichnung, und diese erzeugt nun zwei Quadrat-Instanzen, eine Dreieck-Instanz und eine Kreis-Instanz. Anschließend werden die Methoden jeweils dieser Instanzen aufgerufen, so dass die Zeichnung wie oben ausschaut. Entscheidend ist hier: Objekte können andere Objekte erzeugen und die Methoden dieser weiteren Objekte aufrufen. Man sagt auch, die Objekte können miteinander kommunizieren, indem sie gegenseitig ihre Methoden aufrufen.

Kapitel 1 Grundlagen der Objektorientierung Seite 8/8 1.7 Quelltext Übung 1.12 Aktiviere das Kontextmenü der Klasse Zeichnung und wähle den Eintrag Bearbeiten (Open Editor). Übung 1.13: Finde im Quelltext der Klasse Zeichnung den Abschnitt, der das eigentliche Zeichnen ausführt. Ändere ihn so, dass die Sonne blau statt gelb ist. Hinweis: Beim Methodenaufruf ist es wichtig zu sagen, an welches Objekt die Botschaft gehen soll. Deshalb hat ein Methodenaufruf immer die Form Objektname.methodenname(Parameter) Übung 1.14: Ändere das Programm derart, dass eine 2. Sonne hinzugefügt wird. Übung 1.15 Füge der Version von Zeichnung mit nur einer Sonne einen Sonnenuntergang hinzu. Hierzu soll die Sonne langsam untergehen, rot werden und dann verschwinden. Tipp: Beachte es gibt schon fertige Methoden für eine langsame Bewegung! Übung 1.16: Für den Sonnenuntergang soll eine eigene Methode sonnenuntergang() definiert werden. Hinweis: Im Gegensatz zum Methodenaufruf ist bei ihrer Definition kein Objektname vorangestellt. 2 Dagegen sind hier die Datentypen des Ausgabewertes und der Parameter anzugeben. (siehe 1.5.) 2 Der Objektname würde hier auch keinen Sinn machen, da die Definition innerhalb der Klasse erfolgt, die Grundlage für den Bau der Objekte sind.