Hallo,
Sorry, falls ich irgendwas falsch mache, aber das ist mein erstes Posting hier in diesem Forum.
Ich habe eine Frage zur Parameter-Übergabe an Methoden.
Wenn ich an eine Methode eine Referenzvariable übergebe,
so wird eine Kopie dieser Referenz übergeben, sie müsste also
auf das ursprüngliche Objekt zeigen.
Wenn ich jetzt innerhalb der Methode den Wert des Ursprungs-Objektes ändere,
auf das die Referenzvariable zeigt, so müsste die Änderung auch außerhalb
der Methode sichtbar sein.
Tut sie aber nicht.
Warum nicht? Was mach ich falsch?
Grüße
Feodora
Sorry, falls ich irgendwas falsch mache, aber das ist mein erstes Posting hier in diesem Forum.
Ich habe eine Frage zur Parameter-Übergabe an Methoden.
Wenn ich an eine Methode eine Referenzvariable übergebe,
so wird eine Kopie dieser Referenz übergeben, sie müsste also
auf das ursprüngliche Objekt zeigen.
Wenn ich jetzt innerhalb der Methode den Wert des Ursprungs-Objektes ändere,
auf das die Referenzvariable zeigt, so müsste die Änderung auch außerhalb
der Methode sichtbar sein.
Tut sie aber nicht.
Warum nicht? Was mach ich falsch?
Grüße
Feodora
Java:
public class CallTest {
public static void main(String [] args) {
int i = 10; // einfacher Datentyp Int
Integer obj_i = new Integer(i); // jetzt wird ein Objekt draus: Referenzvariable 'obj_i'
System.out.println("Vor Aenderung : " + i);
aendernIntVariable(obj_i); // übergeben wird jetzt die Referenzvariable
System.out.println("Nach Aenderung : " + i); // hier sollte der geänderte Wert erscheinen
}
private static void aendernIntVariable(Integer k) { // k ist Kopie der Referenzvariable 'obj_i'
k = 100; // zeigt also immer auf 'int i'
// i sollte jetzt geändert sein
System.out.println("geaendert in : " + k);
}
}