Hallo zusammen,
nach langer Programmiererei in C/C++, widme ich mich jetzt der Programmierung mit JAVA.
Vorab, was es mit Referenztypen auf sich hat, und das es in Java nur "Call by value" gibt, habe ich verstanden.
Allerdings habe ich einige Schwierigkeiten, es in JAVA umzusetzen.
Ein Codebeispiel:
Was ich erreichen möchte, ist das string_b genau wie string_a eine Referenz auf ein String-Objekt ist, und zwar dem, das den Wert "Blume " hat. Das heißt, egal, ob ich string_a oder string_b als Referenz heranziehe, eine Manipulation sollte immer nur auf ein und das gleiche Objekt stattfinden und egal ob ich string_a oder string_b ausgebe, ich möchte, dass immer das gleiche ausgegeben wird. Das klappt in meinem Beispiel allerdings nicht. Es sieht vielmehr so aus, als dass string_b eine Kopie von string_a ist. Was mache ich falsch?
Ein ähnliches Problem habe ich auch mit den Typen Byte, Integer, etc. als Argumente für eine Methode, die das Objekt selber manipulieren soll. Es sind ja keine primitiven Typen, sonder sog. Wrapper für byte, integer, etc. Somit würde ich erwarten, das das Argument immer die Referenz auf mein eigentliches Objekt ist und ich dieses auch innerhalb der Methode manipulieren kann.
Ich würde mich sehr über eine Antwort freuen
Gruß
Umberto
nach langer Programmiererei in C/C++, widme ich mich jetzt der Programmierung mit JAVA.
Vorab, was es mit Referenztypen auf sich hat, und das es in Java nur "Call by value" gibt, habe ich verstanden.
Allerdings habe ich einige Schwierigkeiten, es in JAVA umzusetzen.
Ein Codebeispiel:
Code:
public class HelloJava5
{
public static void main(String[] args)
{
String string_a = new String("Blume ");
String string_b = string_a;
System.out.println(string_a);
System.out.println(string_b);
System.out.println("-------");
string_a = "Baum";
System.out.println(string_a);
System.out.println(string_b);
}
}
Was ich erreichen möchte, ist das string_b genau wie string_a eine Referenz auf ein String-Objekt ist, und zwar dem, das den Wert "Blume " hat. Das heißt, egal, ob ich string_a oder string_b als Referenz heranziehe, eine Manipulation sollte immer nur auf ein und das gleiche Objekt stattfinden und egal ob ich string_a oder string_b ausgebe, ich möchte, dass immer das gleiche ausgegeben wird. Das klappt in meinem Beispiel allerdings nicht. Es sieht vielmehr so aus, als dass string_b eine Kopie von string_a ist. Was mache ich falsch?
Ein ähnliches Problem habe ich auch mit den Typen Byte, Integer, etc. als Argumente für eine Methode, die das Objekt selber manipulieren soll. Es sind ja keine primitiven Typen, sonder sog. Wrapper für byte, integer, etc. Somit würde ich erwarten, das das Argument immer die Referenz auf mein eigentliches Objekt ist und ich dieses auch innerhalb der Methode manipulieren kann.
Ich würde mich sehr über eine Antwort freuen
Gruß
Umberto