我使用了很多 C++,但我对 Java 的工作方式感到很困惑:如果我有一个类
public class MyClass{
private int[] myVariable;
...
public int[] getVar(){
return myVariable;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想在其他地方使用我的变量:
public static void main(String[] args){
MyClass myObject = new MyClass();
...
int[] temp = myObject.getvariable();
// use of temp
...
}
Run Code Online (Sandbox Code Playgroud)
temp 是 myVariable 的副本还是引用?
你如何获得副本/参考?
int[]您的示例中只有一个。根本没有复制。该方法返回的getVar是对对象的引用。
线后
int[] temp = myObject.getvariable();
Run Code Online (Sandbox Code Playgroud)
双方temp并myVariable是同一个对象的引用。您可以通过执行例如temp[0] = 9;. 更改将在两个地方都可见。
如果您想复制一个数组,您可以使用其中之一array.clone(),Arrays.copyOf(array, array.length)或者System.arraycopy(...)在您的示例中不使用这些。
| 归档时间: |
|
| 查看次数: |
3897 次 |
| 最近记录: |