Referenzergebnisse in Java
Der Typ eines Methodenergebnisses kann auch ein Referenztyp sein. Dies wurde schon im Grundkurs behandelt.
So ist es beispielsweise möglich eine statische Methode zu definieren, die einen Text in eckige Klammern setzt.
Main.java
public final class Main
{ public static java.lang.String bracket( final java.lang.String text )
{ return "[" + text + "]"; }
public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( bracket( "Hallo!" )); }}java.lang.System.out
[Hallo!]
bracket [Kompassdiagramm]
.--------------------.
java.lang.String | bracket | java.lang.String
-------------------->| |-------------------------------->
Text | | Text in eckigen Klammern
'--------------------'
Der Rückgabewert »null«
Der Autor einer Methodendeklaration sollte dokumentieren, ob seine Methode auch den Wert »null« zurückgeben kann, unter welchen Umständen dies geschieht, und was es dann bedeutet.
Oft wird der Wert »null« zurückgegeben, wenn ein Objekt mit bestimmten Eigenschaften zurückgegeben werden soll, aber dies nicht möglich ist.
Die Existenzdauer von Objekten
Anders als lokale Variablen existieren in einer Methode angelegte Objekte auch nach dem Ende der Methode, in der sie angelegt wurden, weiter.
- [Methodendeklaration]
public static java.lang.Object m() { return new java.lang.Object(); }
- [Methodendeklaration]
public static java.lang.Object m1() { final java.lang.Object o = new java.lang.Object(); return o; }
Die Methode »m1« gibt eine Referenz auf ein Exemplar der Klasse »java.lang.Object« zurück. Mit dem Ende der Ausführung jener Methode endet zwar die Existenz der Variablen »o«, in welcher eine Referenz auf jenes Exemplar gespeichert wurde, aber nicht die Existenz des Exemplars selber. Der Aufrufer der Methode kann also die zurückgegebene Referenz weiterhin verwenden, um auf das Objekt zuzugreifen.