Veröffentlicht 27. Juni 200619 j Hi, gibt es die Möglichkeit Funktionsparameter als Referenz auf ein anderes Objekt zu übergeben? Im Internet bin ich leider nicht fündig geworden, was meine Befürchtung aufkommen lässt, dass dies gar nicht möglich ist in Java.... gruß
27. Juni 200619 j Java selbst unterstützt keine expliziten Zeiger auf Variablen usw. so wie in C z.B. void test(int &bla); In Java werden Objekte allerdings _grundsätzlich_ als refernz übergeben.
27. Juni 200619 j In Java werden Objekte allerdings _grundsätzlich_ als refernz übergeben. Richtig - lediglich primitive Datentypen werden einer Funktion als Kopie und nicht als Referenz übergeben, soweit ich mich erinnern kann. Gruß Markus
27. Juni 200619 j gibt es die Möglichkeit Funktionsparameter als Referenz auf ein anderes Objekt zu übergeben?Objekte (nicht primitive Datentypen) werden immer als Referenzen übergeben. Wobei man das nicht mit der Referenzübergabe unter C verwechseln darf. Siehe auch: JLS 4.3: Reference Types and Values was meine Befürchtung aufkommen lässt, dass dies gar nicht möglich ist in JavaWas genau hast du denn vor?
28. Juni 200619 j Objekte (nicht primitive Datentypen) werden immer als Referenzen übergeben. Ausnahme: String
28. Juni 200619 j Moin moin, Ich habe eine main Prozedur in der ein Objekt erzeugt wird. z.Bsp ein Array von Zahlen. nun habe ich ein Objekt einer Klasse, hier eine Datenbankklasse. Diese Klasse hat eine Methode, welche Abfrage aufruft. Gibt es jetzt die Möglichkeit mit meinem Array in der Funktion zu arbeiten? Beispielsweise würde der Funktionsaufruf lauten: db.abfrage(array); <--- Aufruf mit Referenz auf den Array in main() ?! Mittlerweile habe ich das zwar über Rückgabewerte gelöst, wollte aber nun noch einmal wissen, was möglich ist.
28. Juni 200619 j java.lang.Object -> java.lang.reflect.Array public final class Array extends Object Array == Object also werden Arrays als Referenz übergeben notfalls könnte man auch einfach eine Collection (ArrayList) übergeben - das geht auf jeden Fall
28. Juni 200619 j Oh alles klar, eine Kopie müsste ich dann also innerhalb der Methode erstellen? Oder kann ich auch explizit eine Kopie übergeben? Fragen über Fragen Danke für die bisherigen Antworten schon mal
28. Juni 200619 j Eine Kopie kannst du nicht explizit übergeben. Zum Kopieren von Objekten solltest du dir aber mal die Methode Object.clone() und das interface java.lang.Cloneable anschauen.
28. Juni 200619 j Ausnahme: StringIn wie fern stellt ein String hier eine Ausnahme da? Ein String ist genauso ein Objekt wie jedes andere auch.
28. Juni 200619 j Strings werden nicht als Referenz übergeben. Denn: Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.
28. Juni 200619 j Strings werden nicht als Referenz übergeben.Natürlich werden Sie das. Die Referenzen zeigen dabei letzten Endes nur auf die gleichen Objekte im String-Pool und der Inhalt eines Strings kann dabei nicht mehr verändert werden. Oder anders gefragt: Wie werden sie dann übergeben, und was unterscheidet sie zur Laufzeit damit von anderen Objekten?
28. Juni 200619 j [Haarspalterei] Eigentlich wird jeder an eine Funktion übergebene Parameter als Kopie ("by value") übergeben. [/Haarspalterei] (Dies bedeutet natürlich nicht, das Kopien von Objekten angefertigt werden.)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.