Hallo!
Soweit ich mitbekommen habe, funktionieren Parameterübergaben in Java immer nach CallbyValue. Dabei wird soweit ich glaube zu wissen der Wert (bei primitvien Datentypen) in den lokalen Speicherbereich der Variable kopiert, kann von der Methode aber nicht geändert werden, weil sie nur eine Kopie übergeben bekommt. Soweit ich weiterhin mitbekommen habe wird bei den komplexen Datentypen dann nicht die konkrete Instanz sondern nur die Referenz kopiert.
Nun möchte ich nur fragen, welche Auswirkungen das dann auf die Behandlung der Werte hat
(können Instanzen von Objektdatentypen verändert werden von der Methode oder nicht?)
Für ein Beispiel wäre ich auch dankbar!
Und: Warum wird in diesem Beispiel hier zweimal 200 ausgegeben obwohl die Methode doch eigentlich keinen Einfluss auf den Wert haben sollte?
Soweit ich mitbekommen habe, funktionieren Parameterübergaben in Java immer nach CallbyValue. Dabei wird soweit ich glaube zu wissen der Wert (bei primitvien Datentypen) in den lokalen Speicherbereich der Variable kopiert, kann von der Methode aber nicht geändert werden, weil sie nur eine Kopie übergeben bekommt. Soweit ich weiterhin mitbekommen habe wird bei den komplexen Datentypen dann nicht die konkrete Instanz sondern nur die Referenz kopiert.
Nun möchte ich nur fragen, welche Auswirkungen das dann auf die Behandlung der Werte hat
(können Instanzen von Objektdatentypen verändert werden von der Methode oder nicht?)
Für ein Beispiel wäre ich auch dankbar!
Und: Warum wird in diesem Beispiel hier zweimal 200 ausgegeben obwohl die Methode doch eigentlich keinen Einfluss auf den Wert haben sollte?
Java:
public class CallbyValue{
static double m_wert = 100;
static void wertaendern() {
m_wert += 100;
}
public static void main(String[] args) {
wertaendern();
System.out.println("Der Wert ist " +m_wert);
System.out.println(m_wert);
wertaendern();
}
}
Zuletzt bearbeitet: