Ja — da jeder nur im Körper seiner Methode sichtbar ist, kann er als ein beliebiger Typ deklariert sein.
Es ist manchmal nützlich sich Methoden visuell als eine Box aus verspiegelten Glas vorzustellen. Eine Methode kann lokale Variablen und Parameter, die in der Box sind, sehen. Eine Methode kann durch das Glas, das sie umgibt, hindurchsehen. Aber kein Außenstehender kann in die Box hineinsehen.
Die Abbildung zeigt die verspiegelten Boxen für das Beispielprogramm.
Die roten Linien zeigen das
verspiegelte Glas, das jede Methode umgibt.
Die Methode kann aus der Box herausschauen.
Zum Beispiel kann jede Methode die
Instanzvariable kontostand
sehen,
aber andere Methoden können von außerhalb
nicht in die verspiegelte Box hineinsehen.
In verarbeiteEinzahlung()
kann die Anweisung
die Variable kontostand
, die als Instanzvariable deklariert ist, "sehen".
Sie kann ebenfalls den Parameter betrag
innerhalb der Box sehen.
Die Methode zeigeGebuehr()
ist fehlerhaft,
da sie eine Anweisung enthält, die versucht
in die Box von verarbeiteAuszahlung()
hineinzusehen.
Die Namen der formalen Parameter (wie betrag
)
und lokalen Variablen (wie gebuehr
)
sind innerhalb der Glasbox sichtbar.
Aber dem Außenstehenden ist nur die Anzahl und der Typ der für jede Methode erforderlichen Parameter bekannt.
Ist der Name einer Methode innerhalb oder außerhalb der Glasbox?