Ist der Name einer Methode innerhalb oder außerhalb der Glasbox?
Außerhalb—so dass er von anderen Methoden "gesehen" und verwendet werden kann.
Innerhalb des Körpers einer Methode kann ein Parameter genau wie eine Variable verwendet werden. Er kann in arithmetischen Ausdrücken, in Zuweisungsanweisungen usw. verwendet werden.
Aber, eine Änderung des Parameters hat keinen Effekt außerhalb des Methodenkörpers. Ein Parameter ist eine "lokale Kopie", egal welchen Wert der Aufrufer an die Methode übergeben hat. Jede Änderung, die an ihm vorgenommen wird, betrifft nur diese lokale Kopie. Zum Beispiel:
class KontoChecker
{
. . . .
private int kontoStand;
void verarbeiteAuszahlung( int betrag )
{
int gebuehr;
if ( kontoStand < 100000 )
gebuehr = 15;
else
gebuehr = 0;
kontoStand = kontoStand - betrag - gebuehr ;
// Ändern der lokalen Kopie "betrag"
betrag = 0 ;
}
}
class CheckingTester
{
KontoChecker aktuell;
public static void main ( String[] args )
{
int scheck = 5000;
aktuell = new KontoChecker( "123-345-99",
"Wanda Fish", 100000 );
// gibt "5000" aus
System.out.println( "Scheck: " + scheck );
// Aufruf von verarbeiteAuszahlung() mit dem Wert 5000
aktuell.verarbeiteAuszahlung( scheck );
// gibt "5000" aus--- "scheck" wurde nicht geändert
System.out.println( "Scheck: " + scheck );
}
}
Der formale Parameter betrag ist
der Name, der von verarbeiteAuszahlung() für den Wert 5000
verwendet wird, der ihm vom Aufrufer übergeben wurde.
Die Methode kann den Wert, der in betrag enthalten ist ändern,
aber das hat keine Auswirkung auf die Variable des Aufrufers.
Dieses Thema wird in folgenden Kapiteln weiter erörtert.
Für jetzt,
betrachten Sie einen Parameter als eine "Einbahnstraßen"-Mitteilung,
die der Aufrufer verwendet, um Werte an die Methode zu übermitteln.