因此,当一个方法接受一个Object时,我知道Object的引用是传递的,而不是实际的Object本身。
因此,当我为方法内的Object赋值时,方法调用结束时,原始Object不变。
有没有办法在方法调用中更改实际的对象?
答案 0 :(得分:0)
因此,当一个方法接受一个Object时,我知道Object的引用是传递的,而不是实际的Object本身。
这是不正确的。在Java中,一切都是通过价值传递的。但是,当传递对象时,值将保存实际对象的引用。
因此,当我为方法内的Object赋值时,方法调用结束时,原始Object不变。
这也是不正确的。将对象传递给方法并在方法中更改其值时,原始对象中的值将会更改。
class Student{
int age; //To keep it simple, data is not private
public Students(int age){
this.age=age;
}
public static void main(String[] args)
{
Student s = new Student(17);
addAge(s);
System.out.println(s.age);
}
public static void addAge(Students s){
s.age += 5;
}
}
<强>输出强>:
22 //Age of original object does change
有没有办法在方法调用中更改实际的对象?
它将改变方法调用中的实际对象。如果您想知道我们如何不更改原始对象,那么我们将不得不传入原始对象的copy
。