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 Euch ü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.
Letzlich: die Referenz auf das zweite      Sie erzeugt ein zweites Objekt
          Objekt wird der Variablen        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 der Variablen d zugewiesen.

Betrachten wir 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: