class OpenSource {
private int x;
public OpenSource(int x) {
this.x = x;
}
public void setX(int x) {
this.x = x;
}
public int getX() {
return x;
}
static OpenSource Open(OpenSource opensource) {
opensource = new OpenSource(100); //line 19
return opensource;
}
public static void main(String a[]) {
OpenSource open = new OpenSource(300); //line 24
System.out.println(open.getX() + ".");
OpenSource opensource = Open(open); //line 26
System.out.println(open.getX() + ".");
System.out.println(opensource.getX() + ".");
open = Open(opensource);
System.out.println(open.getX() + ".");
System.out.println(opensource.getX());
}
}
// почему выход дает 300 300 100 100 100 Почему не 300 100 100 100 100, где я ошибаюсь? Я нарисовал представление, как показано ниже, чтобы понять его. Не удалось проследить, что случилось с моим ответом
См. Также http://stackoverflow.com/questions/40480/is-java-pass-by-reference –