これが私のコードです
Class A
public class A {
private int a;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
Class Change
public class Change {
public void changeSomething(A a){
a.setA(13);
}
}
Class Learn
public class Learn {
public static void main(String[] args) {
A a = new A();
Change change = new Change();
change.changeSomething(a);
System.out.println(a.getA());
}
}
出力は13です。オブジェクトをchangeSomethingメソッドに渡すと、内部的にオブジェクトAの値が変更されましたが、なぜその関数の外でこの効果が見られるのですか?
これは、Cで値を渡すことと同じではありません。この場合、その変数/オブジェクトを返さない限り、更新された値は取得されません。
つまりa=changeSomething(a);
、このメソッドの戻り型をAに設定する必要はありませんか?
ありがとう