zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Codezeile: OK Nicht OK
String zeile = "Der Himmel war wie ein Wassertropfen";  X  
String a = zeile.toLowerCase();  X  
String b = toLowerCase( zeile );    X
String c = toLowerCase( "IM SCHATTEN von THORN");    X
String d = "Klar, Ruhig, Schoen".toLowerCase();  X  
System.out.println( "Finster, verlassen...".toLowerCase() );  X  

Temporäre Objekte

Die "OK" Antwort für die letzten zwei Zeilen könnte Sie überrascht haben, aber diese Zeilen sind korrekt (wenn auch vielleicht nicht allzu sinnvoll). Hier ist warum:

String d     =  "Klar, Ruhig, Schoen".toLowerCase();
                 ----------+--------  -----+---
   |                       |               |
   |                       |               |
   |             Zuerst: ein temporäres    |
   |             Stringobjekt wird erzeugt,|
   |             das diese Zeichen enthält.|
   |                                       |
   |                                       Danach: die toLowerCase() Methode des
   |                                               temporären Objekts wird aufgerufen.
Letztlich: die Referenz auf das zweite             Sie erzeugt ein zweites Objekt
           Objekt wird der Referenzvariablen       mit lauter Kleinbuchstaben.
           d zugewiesen.

Das temporäre Objekt (unter Verwendung der nur für Strings gültigen Kurznotation) wird als Basis für das zweite Objekt verwendet. Die Referenz auf das zweite Objekt wird d zugewiesen.

Betrachten Sie jetzt die letzte Anweisung:

System.out.println( "Finster, verlassen...".toLowerCase() );

Ein String wird konstruiert (unter Verwendung der nur für Strings gültigen Kurznotation). Dann wird ein zweiter String konstruiert (durch die toLowerCase() Methode). Der zweite String wird als ein Parameter für println() verwendet. Beide Stringobjekte sind temporär.

FRAGE 16:

Rückblick: