我一直在阅读很多关于这个的帖子,所有的答案都倾向于反驳之前的答案,而且它们似乎都是由高等级的人提出的,所以我很困惑,只想知道这是否有效:
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 的副本?
在我开始在这里阅读有关它的主题之前,我认为这对我来说很清楚,哈哈
编辑:感谢更正代码,我只是把它写在这里作为例子,没有看到错误
多谢你们。我也对人们说按值传递感到困惑,所以我不确定它是否传递内存中的地址,因为对我来说那是传递一个参考,所以我不清楚。