java访问另一个类的数组变量
假设我有一门课,如下所示:
public class class1{
private int[] array1;
public class1(){
array1 = new int[10];
}
public int[] getArray(){
return array1;
}
}
如果我在另一个类或main中创建该类的实例,并使用getArray()方法将数组分配给上层类中的另一个变量,然后在那里修改数组的值,那么第一个类中的原始数组值也会被修改吗
# 1 楼答案
是的,原始数组值也将被修改
当您从方法返回数组的引用时。引用只是指向对象地址的指针。当您从方法返回它时,它将被指定给另一个引用。如果使用该引用修改任何内容,则实际上是在修改同一数组,即原始数组
# 2 楼答案
是的,它将被修改,因为您在调用者中得到的不是数组本身的副本,而是原始数组对象引用的副本
而且,如果使用任何引用修改数组,则该更改将反映在指向该数组的所有引用中