package lezione04; public class Slide25 { public static void main(String[] args) { int[] array; array = new int[]{1,2,3,4,5}; System.out.println("array = " + array); // essendo la variabile array di un tipo per riferimento, in questo modo "stampo" il riferimento, non il contenuto! for (int i = 0; i < array.length; i++) { System.out.println("array[" + i + "] = " + array[i]); } System.out.println("----------"); int[] another = array; System.out.println("another = " + another); // da notare che il riferimento è lo stesso. perchè? perchè "punta" (indirizza) alla stessa "scatola" (locazione di memoria) for (int i = 0; i < another.length; i++) { System.out.println("another[" + i + "] = " + another[i]); } System.out.println("----------"); another[2] = 10; // Notate: noi crediamo di modificare la variabile another, ma in realtà lei punta sempre nello stesso posto: stiamo modificando il contenuto a cui lei punta! for (int i = 0; i < another.length; i++) { System.out.println("another[" + i + "] = " + another[i]); } for (int i = 0; i < array.length; i++) { System.out.println("array[" + i + "] = " + array[i]); // infatti anche "passando da array" la modifica è visibile: abbiamo solo "percorso una strada" diversa per arrivarci! } System.out.println("----------"); int[] yetAnother = {1,2,10,4,5}; System.out.println("array = " + array); System.out.println("another = " + another); System.out.println("yetAnother = " + yetAnother); // Notate: yetAnother ha un riferimento diverso, poichè è un nuovo array, in una diversa "scatola" (seppur il contenuto sia uguale) array[0] = 100; // Notate: la modifica infatti sarà visibile solo da array e another, non da yetAnother! for (int i = 0; i < yetAnother.length; i++) { System.out.println("yetAnother[" + i + "] = " + yetAnother[i]); } for (int i = 0; i < another.length; i++) { System.out.println("another[" + i + "] = " + another[i]); } for (int i = 0; i < array.length; i++) { System.out.println("array[" + i + "] = " + array[i]); // infatti anche "passando da array" la modifica è visibile: abbiamo solo "percorso una strada" diversa per arrivarci! } } }