Kids' Programming Language
Inhalt

Sprachreferenz

Methoden ()

Methoden in Klassen einfügen

Die wesentliche Funktionalität von Klassen wird durch die Methoden der Klassen bestimmt. Eine Methode weist ein Objekt einer Klasse an, etwas Bestimmtes zu tun. Die Klasse 'Kreis' besitzt zum Beispiel eine Methode 'zeige', die den Kreis auf dem Bildschirm darstellt. Mit Hilfe des -Schalters lässt sich in eine benutzerdefinierte Klasse eine Methoden einfügen.
 
Als Beispiel wird von der Klasse 'KreisQuadrat' ausgegangen, die ein Quadrat mit einem inneren Kreis zeichnen soll (siehe Abschnitt "Klassen"):
 
Programm
Objekt=KreisQuadrat()
KreisQuadrat (Größe=100, FarbeKreis="rot", FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)
 
Objekte dieser Klasse sollen mit der Methode 'zeige' auf dem Bildschirm angezeigt werden. Nach dem Einfügen der Methode 'zeige' lassen sich mit 'zeige:Quadrat' und 'zeige:Kreis' die beiden Grafikobjekte darstellen:
 
Programm
Objekt=KreisQuadrat()
zeige:Objekt
KreisQuadrat (Größe=100, FarbeKreis="rot", FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)

Methode zeige
zeige:Quadrat
zeige:Kreis
 
Wichtig ist, dass man innerhalb der Methoden auch auf Objekte zugreifen kann, die in der Klasse selbst erzeugt wurden ('Quadrat' und 'Kreis') und auf die Parameter der Klasse ('Größe', 'FarbeKreis', 'FarbeQuadrat'). Normalerweise werden (z.B. bei der Klasse 'Kreis') der Methode 'zeige' die Parameter 'x' und 'y' übergeben, die bestimmen, wo das Objekt gezeichnet werden soll. Deswegen soll nach dem Namen der Methode noch ein Klammernpaar mit den Namen (und Vorgabewerten) der Parameter stehen. Dies passiert auf die gleiche Weise wie bei den Parametern für die Klasse:
 
Programm
Objekt=KreisQuadrat()
zeige(x=100):Objekt
KreisQuadrat (Größe=100, FarbeKreis="rot", FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)

Methode zeige (x=400,y=300)
zeige(x=x,y=y):Quadrat
zeige(x=x,y=y):Kreis
Als Standardwerte für 'x' wurde 400 und für 'y' wurde 300 gewählt, also der Mittelpunkt des Fensters.

Methoden mit Rückgabewerten

Einige Methoden sollen Werte zurückgeben: zum Beispiel eine Methode 'gibX', die die x-Position des 'KreisQuadrat'-Objekts zurückgeben soll. Dafür schreibt man nach den Parametern der Methode, falls welche vorhanden sind, ein Gleichheitszeichen gefolgt von einem Vorgabewert für die Rückgabe. Oft wird der Wert in jedem Fall innerhalb der Methode gesetzt, so dass man statt z.B. einer Zahl einfach ein Standard-Zahl-Objekt mit 'Zahl()' erzeugt, um keine Zahl explizit angeben zu müssen. Innerhalb der Methode kann man an beliebiger Stelle den Rückgabewert setzen, indem man den Namen der Methode gefolgt von einem Gleichheitszeichen und einem Objekt, das zugewiesen werden soll, schreibt: Also zum Beispiel 'gibX=400'. Doch wie lässt sich der Wert nun die tatsächliche x-Position zurückgeben? Auf Objekte, die in einer anderen Methode (in diesem Falle 'zeige') erzeugt wurden oder als Parameter mitgegeben wurden, kann nicht zugegriffen werden. Deswegen funktioniert das folgende Beispiel nicht:
 
KreisQuadrat (Größe=100, FarbeKreis="rot",FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)

Methode zeige (x=400, y=300)
zeige(x=x,y=y):Quadrat
zeige(x=x,y=y):Kreis
Methode gibX = Zahl()
gibX=x % Fehler, denn auf x kann nicht zugegriffen werden
 
Die Objekte 'x' und auch 'y' müssen schon in der Klasse selber erzeugt werden, damit alle Methoden auf die beiden Objekte zugreifen können. Dazu schreibt man bereits in die Klasse 'x=400' und 'y=300'. Wenn bei der Methode 'zeige' 'x' oder 'y' nicht übergeben wird, sollen die Werte der klassenweiten Objekte natürlich auch benutzt und verändert werden. Verwendet man für 'zeige' die Parameter mit den Namen 'x' und 'y'  werden durch das Setzen der Parameter die beiden Objekte verändert. Als Vorgabewerte sollen aber nicht 400 und 300 dienen, sondern der Wert der beiden Objekte selber: Also verwendet man als Parameter 'x=x' und 'y=y'. Die Rückgabe der x-Position in der Methode 'gibX' kann jetzt einfach mit 'gibX=x' erfolgen:
 
Programm
Objekt=KreisQuadrat()
zeige(x=100):Objekt
schreibe:gibX:Objekt
KreisQuadrat (Größe=100, FarbeKreis="rot",FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)
x=400
y=300

Methode zeige (x=x, y=y)
zeige(x=x,y=y):Quadrat
zeige(x=x,y=y):Kreis
Methode gibX = Zahl()
gibX=x
 
Noch kürzer geht es indem 'x' bereits als Vorgabewert für die Rückgabe benutzt wird, dann lässt sich auf ein explizites setzen von 'gibX' gänzlich verzichten:
 
Methode gibX = x

Eigene Methoden aufrufen

Es lassen sich auch Methoden innerhalb der gleichen Klassen aufrufen und das nicht nur innerhalb der Klasse selber, sondern auch innerhalb der Methoden der Klasse. Normalerweise werden Methoden aufgerufen, indem der Methodenname und anschließend nach einem Doppelpunkt der Objektname geschrieben wird. Innerhalb einer Klasse weiß man natürlich nicht wie ein Objekt der Klasse einmal heißen wird und außerdem können schließlich von einer Klasse mehrere Objekte erzeugt werden! Andererseits weiß das laufende Programm, um welches Objekt es sich gerade handelt, da entweder ein neues Objekt erzeugt oder eine Methode aufgerufen worden ist. Folglich werden Methoden innerhalb einer Klasse (d.h. des selben Objekts) nur mit dem Methodennamen (ohne folgenden Doppelpunkt) aufgerufen. Soll z.B. beim Erzeugen eines Objekts der Klasse 'KreisQuadrat' das Objekt sofort angezeigt werden, lässt sich der Aufruf der Methode 'zeige' wie folgt einfügen:
 
Programm
Objekt=KreisQuadrat()
KreisQuadrat (Größe=100,FarbeKreis="rot",FarbeQuadrat="orange")
Quadrat=Quadrat(Farbe=FarbeQuadrat,Größe=Größe)
Kreis=Kreis(Farbe=FarbeKreis,Größe=Größe)
x=400
y=300
zeige

Methode zeige(x=400, y=300)
zeige(x=x,y=y):Quadrat
zeige(x=x,y=y):Kreis
schreibe:"Position x: "+gibX+", y: "+gibY
Methode gibX = x

Methode gibY = y

 
Methodenaufrufe in der Klasse selbst müssen nach dem Erzeugen aller Objekte stehen, die man in den Methoden verwenden möchte. Außerdem wurde in diesem Beispiel die Methode 'zeige' so verändert, dass sie jedes Mal die Position des Objekts anzeigt. Die Methode benutzt dazu die Methoden 'gibX' und 'gibY'. Parameter lassen sich wie gewohnt übergeben, so wäre z.B. auch der Methodenaufruf 'zeige(x=100,y=100)' zulässig.

Jetzt kostenlos herunterladen.
Diese Seite ausdrucken.
Diese Seite speichern.