PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java: Per Referenz oder doch nicht...



itsme
01-01-2003, 22:25
Je nachdem an was ich einen Parameter bei Java übergebe wird er als Referenz oder als Kopie übergeben. Gibt es dafür eine klare Regel oder kann man das irgendwie steuern? Ich bekomme oft die seltsamsten Ergebnisse.

SeeksTheMoon
02-01-2003, 11:35
Man kann es nicht steuern. Eine Variable in Java ist immer typisiert. Sie ist entweder von einem primitiven Typen oder von einem Referenztypen (alle Objekte, Strings, Arrays).

Man übergibt immer den Namen der Variable. Man muss sich eigentlich gar keine Gedanken machen, was da nun übergeben wird.

Was hast Du denn für ein Problem? (Fehlermeldung, Code)

itsme
02-01-2003, 13:29
Ich arbeite an einem kleinen Java Paint. Ich will einbauen, dass man den letzten Schritt rückgängig machen kann. Ich speichere diesen letzten Schritt einfach in einem BufferedImage und überschreibe damit das aktuelle Bild. Das klappt grundsätzlich sehr gut. Ich habe jetzt eine eigene Klasse die ein neues Bild erzeugt. Dieses Bild wird dann in einer anderen Klasse zwischengespeichert. Auch das Bild mit der letzten Änderung wird da gespeichert. Wenn ich da jetzt einfach 2 Mal das gleiche Bild übergebe (am Anfang sind ja eh beide gleich), erhält das 2. Bild die Adresse auf das erste Bild und keine Kopie davon. Das heisst alle Änderungen die ich am 1. Bild vornehme werden auch am 2. Bild geändert. Ich habe das halt einfach gelöst indem ich für das 2. Bild auch ein seperates BufferedImage erzeugt habe. Es funktioniert jetzt und ich habe kein Problem mehr, es hat mich einfach mal interessiert. :)

peschmae
06-01-2003, 10:53
bei objekten wird halt immer die Referenz übergeben (da gehören auch Strings dazu)

wenn du nun eine kopie erstellen willst kannst du die
objekt.clone() - methode verwenden, allerdings muss das objekt dazu cloneable implementieren (das benötigt aber keine speziellen methoden oder so)

MfG Peschmä