Hallo liebe Community.
Erst mal möchte ich sagen dass ich neu hier bin und euch mal alle begrüßen!
Ich hab mir über die letzten paar Wochen mal Java selbst ein wenig beigebracht, bin aber jetzt auf etwas gestoßen was ich mir selbst nicht erklären kann.
Also, folgender Code:
class IntKlasse {
public int a;
public IntKlasse (int a) {
this.a=a;
}
}
class RefIntKlasse {
public IntKlasse x;
public double y;
public RefIntKlasse (int u, int v) {
x=new IntKlasse(u);
y=v;
}
}
public class Fahrzeug {
public static void copy3 (RefIntKlasse f, RefIntKlasse g) {
g=f;
}
public static void main (String args []) {
RefIntKlasse p=new RefIntKlasse(5,7);
RefIntKlasse q=new RefIntKlasse(1,2);
copy3(p,q);
System.out.println("q.y= "+q.y);
System.out.println("p.y= "+p.y);
}
}
So, nach Anwendung dieser Copy3-Methode sollten doch sowohl p als auch q die gleichen Speicherbereiche referenzieren ergo die gleichen Werte für die Variablen liefern; Tun sie aber nicht?!?! die ausgabe obigen programmes ist
q.y= 2.0
p.y= 7.0
und ich verstehe nicht weshalb.
wenn ich die copy-methode weglasse und einfach in die main schreibe "p=q;" funktioniert es, aber das ist doch der selbe code wie in der methode???
erleuchtet mich!
LG
Erst mal möchte ich sagen dass ich neu hier bin und euch mal alle begrüßen!
Ich hab mir über die letzten paar Wochen mal Java selbst ein wenig beigebracht, bin aber jetzt auf etwas gestoßen was ich mir selbst nicht erklären kann.
Also, folgender Code:
class IntKlasse {
public int a;
public IntKlasse (int a) {
this.a=a;
}
}
class RefIntKlasse {
public IntKlasse x;
public double y;
public RefIntKlasse (int u, int v) {
x=new IntKlasse(u);
y=v;
}
}
public class Fahrzeug {
public static void copy3 (RefIntKlasse f, RefIntKlasse g) {
g=f;
}
public static void main (String args []) {
RefIntKlasse p=new RefIntKlasse(5,7);
RefIntKlasse q=new RefIntKlasse(1,2);
copy3(p,q);
System.out.println("q.y= "+q.y);
System.out.println("p.y= "+p.y);
}
}
So, nach Anwendung dieser Copy3-Methode sollten doch sowohl p als auch q die gleichen Speicherbereiche referenzieren ergo die gleichen Werte für die Variablen liefern; Tun sie aber nicht?!?! die ausgabe obigen programmes ist
q.y= 2.0
p.y= 7.0
und ich verstehe nicht weshalb.
wenn ich die copy-methode weglasse und einfach in die main schreibe "p=q;" funktioniert es, aber das ist doch der selbe code wie in der methode???
erleuchtet mich!
LG