Objekte in Aktion

Objekte und Klassen

Hasenwelt

Lade das Szenario Grundbegriffe herunter und entpacke es. Doppelklicken auf die zip-Datei genügt nicht, da dann nur einzelne Dateien des Projekts in ein temporäres Verzeichnis entpackt werden. Öffne das Projekt durch Doppelklick auf die Projektdatei "project.greenfoot" im entsprechenden Ordner. (Alternativ: Starte Greenfoot und öffne das Projekt, indem Du das Verzeichnis mit dem Projekt auswählst). Klicke auf den Button "Compile/ Alle Übersetzen" rechts unten. (In Greenfoot ab Version 3 fehlt dieser Button, da die Programme bei Änderungen automatisch im Hintergrund compiliert werden.)

Im rechten Bereich findest Du die Klassen, die in diesem Szenario vorkommen, wie z.B. HasenWelt oder Hase. Jedes der Rechtecke repräsentiert eine Klasse.

Aufgabe 1

Klicke mit der rechten Maustaste auf die Klasse Hase und wähle new Hase() aus dem Kontextmenü. Du kannst dann durch Klicken auf die Fläche im linken Bereich - die Welt dieses Szenarios - einen Hasen darin positionieren. Du hast gerade ein Objekt der Klasse Hase erzeugt!

Erzeuge mehrere Objekte der Klassen Hase, Karotte und Stein ähnlich der obigen Abbildung.

Methoden

Die Fähigkeiten, die ein Objekt besitzt, werden durch die Methoden definiert, die an diesem Objekt aufgerufen werden können.

Aufgabe 2

Rufe die Methoden linksDrehen, laufe und esseKarotte durch Rechtsklick an einem Hase-Objekt auf und beobachte was sie bewirken. Auch die Welt ist ein Objekt. Man kann auf deren Methoden zugreifen, indem man in einem freien Bereich der Welt mit der rechten Maustaste klickt. Rufe die Methode populate des hasenwelt-Objekts auf.

Parameter

Einige Methoden benötigen zusätzliche Information, um ausgeführt werden zu können. Diese Information kann man ihnen als Parameter übergeben. So benötigt bspw. die Methode setRichtung eine Angabe zur Richtung, in die sich ein Hase drehen soll. Die Art der Information wird durch die Signatur der Methode vorgegeben. Diese kann man sehen, wenn man auf ein Objekt mit der rechten Maustaste klickt. Für die Methode setRichtung hat sie die Form

void setRichtung(int richtung)

Der Teil zwischen den Klammern liefert die Information über die benötigten Parameter. Für jeden Parameter wird ein Datentyp und ein Name definiert. Bei mehreren Parametern werden diese durch Kommata voneinander getrennt. Wenn der Bereich zwischen den Klammern leer ist, wird kein Parameter erwartet. Dennoch gehören die Klammern auch dann zur Signatur der Methode dazu, um zu kennzeichnen, dass es sich um eine Methode ohne Parameter handelt.

Datentypen

Der Datentyp gibt an welche Art von Information als Parameter übergeben werden muss. Der Typ int steht bspw. für ganze Zahlen (aus dem Englischen: integer). Es gibt noch andere Datentypen, um z.B. Zeichen oder Kommazahlen als Typen festzulegen.

Aufgabe 3

Rufe die Methode setRichtung an einem Hase-Objekt auf und übergebe dabei den benötigten Parameter. Teste die Methoden des hasenwelt-Objekts und übergebe die benötigten Parameter.

Rückgabewerte

Methoden können nicht nur Informationen verlangen, sie können diese auch als Antwort liefern. Der Datentyp des Rückgabewertes lässt sich ebenfalls an der Signatur der Methode erkennen. So kann man z.B. an der Signatur der Methode
int getZahlKarotten()
eines Hase-Objekts erkennen, dass diese eine ganze Zahl zurück gibt, da links vom Namen der Methode der Datentyp int angegeben ist. Falls eine Methode keine Rückgabe liefert, wird dies durch void angegeben.

Aufgabe 4

Rufe verschiedene Methoden eines Hase-Objekts auf und vergleiche den zurückgegebenen Wert mit der Signatur der Methode.

Attribute

Objekte haben bestimmte Eigenschaften und Daten, die zu ihnen gehören. Diese werden in den Attributen des Objekts gespeichert. Man kann sich diese in Greenfoot anschauen, wenn man mit der rechten Maustaste auf ein Objekt klickt und dann den Objektinspektor über den Eintrag "Inspizieren" aufruft. Auch Attribute haben - ebenso wie Parameter von Methoden - einen Namen und einen Typ.

Aufgabe 5

Untersuche mit dem Objektinspektor mehrere Hase-Objekte und suche z.B. die Attribute und Attributwerte, die deren Position in der Welt angeben.

Quelltext

Die Methoden und Attribute von Objekten werden in deren Klassen definiert. Dazu schreibt man für jede Klasse Quelltext in einer objektorientierten Programmiersprache wie z.B. Java. Den Quelltext kann man sich ansehen, wenn man auf die Klasse mit der rechten Maustaste klickt und "Editor öffnen" auswählt. (Alternativ: Doppelklicken) Um diesen Text in ein für den Computer ausführbares Programm umzuwandeln, muss man ihn "compilieren". Dies hat zur Folge, dass man den Quelltext jedesmal, wenn man eine Änderung vorgenommen hat, neu übersetzen lassen muss.

Aufgabe 6

Öffne den Quelltext der Hase-Klasse und gehe ans Ende der Datei. Entferne dort die beiden Schrägstriche am Anfang der Zeilen. Durch die Schrägstriche werden Kommentare eingeleitet, so dass dieser Bereich bis jetzt nicht übersetzt wurde. Die Zeilen definieren die Methode act, die in Greenfoot eine besondere Funktion besitzt: Wenn der Act-Button gedrückt wird, wird diese Methode automatisch einmal ausgeführt. Wenn der Run-Button gedrückt wird, wird die Methode immer wieder ausgeführt, bis man die Simulation stoppt. Schließe das Editor-Fenster, compiliere die Klassen durch Klick auf "Compile/ Alle übersetzen" und erzeuge einige Hase-, Stein- und Karotte-Objekte. Teste durch Klicken des Act- oder Run-Buttons.

Vererbung

Wenn man sich den Quelltext der Klasse Stein oder Karotte anschaut, sieht man, dass dort fast nichts drin steht. Dennoch ergibt eine Untersuchung mit Hilfe des Objektinspektors, dass die Objekte der Klassen einige Attribute besitzen. Dies kommt daher, dass die Klassen als Unterklasse der Klasse Actor definiert wurden. Somit erbt jedes Objekt der Klasse Hase alle Attribute und Methoden der Klasse Actor.

Aufgabe 7

Klicke auf ein Hase-Objekt mit der rechten Maustaste und untersuche welche Methoden es von Actor geerbt hat und welche in der Klasse Hase definiert sein müssen. Verfahre ebenso für die Klasse Stein.

X

Fehler melden

X

Suche