zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Kann ein String ein Parameter für eine Methode sein?

Antwort:

Ja, eine Stringreferenz ist oft ein Parameter.

Stringreferenzen als Parameter

Manche Methoden benötigen einen Parameter, der eine Referenz auf ein Stringobjekt enthält. Zum Beispiel,

String stringA = "Random Jottings";
String stringB = "Lyrical Ballads";

if ( stringA.equals( stringB ) )
  System.out.println("Die Strings sind gleich.");
else
  System.out.println("Die Strings sind verschieden.");
Methodenaufruf mit einem Reference Parameter

Manche Methoden erfordern einen Parameter, der eine Referenz auf ein String Objekt ist. Das Beispielprogramm zeigt das.

Die Abbildung zeigt wie der Methodenaufruf funktioniert. (Beide Objekte haben viele Methoden, aber nur die equals() Methode von einem Objekt ist abgebildet.

Der String, der durch stringA referenziert wird, besitzt eine equals() Methode. Diese Methode wird mit einem Parameter aufgerufen, einer Referenz auf stringB. Die Methode überprüft, ob beide Strings die gleichen Zeichen enthalten und wenn ja, gibt sie wahr (true) zurück.

Vorsicht:   Die Aussage des vorherigen Absatzes ist korrekt, aber umständlich. Es wird oft vereinfacht von einem "String" gesprochen, wenn eigentlich eine "Referenz auf einen String" gemeint ist. Das ist OK. Denken Sie aber daran, dass eine Variable wie stringA kein Objekt ist, sondern eine Referenz auf ein Objekt. Das mag pingelig scheinen, aber es gibt nichts pingeligeres als einen Computer. Ich (der Autor) sehe häufig Studenten, die nicht sorgfältig damit sind und später Probleme haben.


Der Code Was gewöhnlich gesagt wird Tatsächliche Bedeutung
stringA.equals( stringB ) Die equals() Methode von stringA wird mit stringB aufgerufen. Die equals() Methode des Strings, der durch stringA referenziert wird, wird mit einer Referenz auf stringB aufgerufen.


FRAGE 3:

(Rückblick:) Prüfen Sie den folgenden Codeschnipsel. Beantworten Sie die Fragen, indem Sie die Worte sorgfältig wählen (so wie in oben rechts).

String a;
Point  b;