Lecture on October 4th
Pass by Copy vs Pass by Reference
Pass by Copy
When you pass a primitive type into a method (int, char, double, float, etc), it makes a copy of the value of the variable and brings it into the method
Pass by Reference
When you pass an array into a method (int[], char[], double[], etc[]), it passes in the reference of the variable into the method. In other words, you give the actual array into the method and allows the method to change it.
What’s the Implication?
If you change the primitive in a method, it doesn’t actually change the value of the variable.
If you pass in an array and change it in the method, it has been permanently changed outside the method as well.
How do I make it so I can’t change my array by accident?
Use the final
keyword in the method header
public static void printAll(final int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.println("Number " + (i + 1) + " is " + array[i])
}
}