Thursday, August 22, 2019

create an alias/reference of a variable (JAVA)



I have used a lot of C++ and I am quite confused with the way Java works :

if I have a class



public class MyClass{
private int[] myVariable;
...

public int[] getVar(){
return myVariable;
}
}



and then I want to use my variable elsewhere :



public static void main(String[] args){
MyClass myObject = new MyClass();
...
int[] temp = myObject.getvariable();
// use of temp
...

}


is temp a copy or a reference of myVariable ?



How do you get a copy / a reference to it ?


Answer



There is only one int[] in your example. There is no copying at all. What is returned by the method getVar is a reference to the object.



After the line




int[] temp = myObject.getvariable();


both temp and myVariable are references to the same object. You can test this by doing e.g. temp[0] = 9;. The change will be visible in both places.



If you want to copy an array, you can use one of array.clone(), Arrays.copyOf(array, array.length) or System.arraycopy(...) but none of these are used in your example.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...