Das vervollständigte Programm befindet sich unten.
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.
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."