Ciao, ho due esercizi semplici su cui ho qualche dubbio.
1) Ho un programma del genere e devo dire cosa mi stampa il main.
La soluzione mi dice che viene stampato: 5 0 5 5 0. Qualcuno mi spiega il perchè?codice:class A { int x; } class PP { static void metUno(int a) { a = 0; } static void metDue(int[] a) { a[0] = 0; } static void metTre(int[] a) { a = null; } static void metQuattro(A a) { a = null; } static void metCinque(A a) { a.x = 0; } public static void main(String[] args) { int i1 = 5; metUno(i1); System.out.println(i1); int[] a1 = new int[] {5, 5}; metDue(a1); System.out.println(a1[0]); int[] a2 = new int[] {5, 5}; metTre(a2); System.out.println(a2[0]); A o1 = new A(); o1.x = 5; metQuattro(o1); System.out.println(o1.x); A o2 = new A(); o2.x = 5; metCinque(o2); System.out.println(o2.x); } }
Io avrei detto che viene stampato: 0 0 null null 0. Inoltre non ho capito cosa fa metCinque e o2.x = 5 cosa vuol dire?
2) Dato questo programma
Devo dire cosa stampa il main in questi casi:
- a. X è 0, Y è A
b. X è 0, Y è B
c. X è 1, Y è A
d. X è 1, Y è B
Qui non ho proprio capito l'esercizio, cosa sono X, Y, A e B?
Grazie in anticipo!