zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Das vervollständigte Programm befindet sich unten.

Einen Konstruktor in einer Deklaration verwenden

Hier ist das vollständige Programm mit den ausgefüllten Lücken.

class StringTester
{

  public static void main ( String[] args )
  {
    String str1;   // str1 ist eine Variable, die ein String-Objekt bezeichnet.
    String str2;   // str2 ist eine Variable, die ein zweites String-Objekt bezeichnet.
    int    laenge1 , laenge2 ;    // die Länge von str1 und von str2

    str1   = new String( "Eier") ; // den ersten String erzeugen

    str2   = new String( " und Pilze.")  ; // den zweiten String erzeugen


    laenge1  = str1.length();    // die Länge des ersten Strings ermitteln

    laenge2  = str2.length();    // die Länge des zweiten Strings ermitteln

    System.out.println("Die Gesamtlaenge beider Strings ist " +
        (laenge1 + laenge2) + " Zeichen" );
  }
}

Dies ist eine "wortreiche" Version des Programms. Ein Objekt kann in einer Variablendeklaration erzeugt werden. Zum Beispiel geht das Folgende:

String str1 = new String("Eier");

Es gibt sogar noch einen kürzeren Weg dafür, aber das funktioniert nur mit Stringobjekten.

String str1 =  "Eier";

Diese Anweisung stellt sicher, dass str1 auf ein Stringobjekt mit den entsprechenden Zeichen verweist. Aber wenn ein "Eier"-Objekt bereits existiert, wird kein neues Stringobjekt erzeugt, sondern str1 bekommt lediglich die Referenz auf das bereits existierende Objekt zugewiesen.

Das ist eine Optimierung. Häufig wird die gleiche Sequenz von Zeichen an vielen Stellen eines Programms benötigt. Also ist es effizient nur ein Objekt zu verwenden.

FRAGE 17:

Betrachtet den folgenden Code. Wie viele Objekte gibt es?

String prompt1 = "Press Enter to Continue."
String prompt2 = "Press Enter to Continue."
String prompt3 = "Press Enter to Continue."
String prompt4 = "Press Enter to Continue."