29.01.2014 Aufrufe

Script Java

Script Java

Script Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.2 Einfache versus komplexe Datentypen<br />

In der zweiten Anweisung wird der Wert der Variablen i, also die Zahl 3, der Variablen j<br />

zugewiesen. Da durch diese Transaktion i seinen Wert behält, kann man sich vorstellen,<br />

dass nicht der Originalwert von i sondern eine Kopie dieses Wertes an j übergeben wird.<br />

Wenn nun in der letzten Zeile i den Wert 2 erhält, hat dies keinen Einfluss auf die<br />

Variable j: sie hat immer noch den Wert 3.<br />

4.2.2.2 Komplexe Datentypen<br />

Im Gegensatz zu den einfachen Datentypen enthalten komplexe Datentypen eine Referenz<br />

auf ein Objekt (siehe Abschnitt 4.2.1.2). Somit wird bei einer Variablenübergabe eine<br />

Referenz und nicht ein Wert übergeben, was als „pass by reference“ bezeichnet wird.<br />

Eigenschaften und Konsequenzen des „pass by reference“ demonstriert folgender<br />

Programmausschnitt:<br />

Checkbox a, b;<br />

a = new Checkbox();<br />

b = a;<br />

a.setState(true);<br />

boolean state = b.getState();<br />

//state hat den Wert true<br />

In der zweiten Anweisung wird ein Objekt der Klasse Checkbox generiert und eine<br />

Referenz darauf der Variablen a zugewiesen. Darauf wird in der dritten Zeile der Inhalt<br />

der Variablen a der Variablen b zugewiesen. Da a aber nicht einen Wert sondern eine<br />

Referenz auf ein Objekt enthält, wird b somit auch ein Verweis auf die zuvor erzeugte<br />

Instanz der Klasse Checkbox zugewiesen. Weil nun beide Variablen auf dasselbe Objekt<br />

zeigen, hat die durch die Anweisung a.setState(true) ausgelöste Änderung auch<br />

einen Einfluss auf b, state hat nämlich den Wert true.<br />

Möchte man hingegen tatsächlich einer Variablen eine Kopie eines Objektes zuweisen,<br />

muss man die sogenannte clone()-Methode verwenden, welche in der Klasse Object<br />

deklariert ist und in etlichen Unterklasse redefiniert wird.<br />

4.2.3 Prüfen auf Gleichheit<br />

Der ‘==‘-Operator vergleicht Variableninhalte. Angewendet auf einfache Datentypen<br />

vergleicht er also deren Werte. Setzt man ihn hingegen bei komplexen Datentypen ein,<br />

werden Referenzen auf Gleichheit untersucht. In diesem Fall wird also überprüft, ob beide<br />

Variablen auf dasselbe Objekt referenzieren.<br />

118

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!