私はこれについて多くの投稿を読んできましたが、すべてがその前の回答に反論する傾向がある回答でいっぱいであり、それらはすべて上位の人々によるものであるように見えるので、非常に混乱しており、これが機能するかどうかを知りたいだけです:
public class Object{
private int someNumber = 5;
public void setSomeNumber(int newNumber){someNumber = newNumber;}
}
public class Main {
Object myObject = new Object();
public static void main(String[] args){
changeNumber(myObject);
}
void changeNumber(Object obj)
{
obj.setSomeNumber(10);
}
}
これは myObject.someNumber を 10 に変更しますか?
私の理解では、obj は myObject と同じメモリ内の場所を指しているため、obj を使用してメソッドを呼び出すことは、myObject を使用して呼び出すことと同じです。なぜなら、obj は myObject の単なるコピーではないからです。
ここでそれについてのスレッドを読み始めるまで、それは私には明らかだと思っていました笑
編集:コードを修正してくれてありがとう、私は例としてここに書きましたが、間違いは見られませんでした
みんなありがとう。また、値渡しと言っている人に混乱していたので、メモリ内のアドレスを渡しているのかどうかわからなかったので、参照を渡しているので不明確になりました。