I am declaring an array myArray
in main method and passed the same array in doIt(myArray)
method.
When I took another array variable in doIt()
method and assign myArray
to it. And then I printed the myArray
in main method.
But I am doing same thing with integer
and String
, the changes made in respective method do not affect the output.
My Code is
public class ChangeIt {
public static void main(String[] args) {
int[] myArray = {1,2,3,4,5};
new ChangeIt().doIt(myArray);
for (int i = 0; i < myArray.length; i++) {
System.out.print(myArray[i] + " ");
}
String str= "Gaurav";
new ChangeIt().printString(str);
System.out.println("\n"+ str);
int num = 5;
new ChangeIt().printNum(num);
System.out.println(num);
}
private void doIt(int[] z) {
int[] A = z;
A[0] = 99;
}
private void printString(String s){
String s2 = s + "Kukade";
}
private void printNum(int x) {
int y = x+1;
}
}
The output is
99 2 3 4 5
Gaurav
5
So, what is happening? Why it is printing 99
instead of 1
?