Nel
precedente esercizio 4 abbiamo affrontato le costanti, realizzate in Java
con i modificatori static
e final.
Siamo quindi sicuri di conoscerle bene?
Proviamo
ad analizzare il seguente programma:
class JavaQuiz5
{
final
int s = f();
final
int t = 5;
int f()
{
return t;
}
int ss
= ff();
int tt
= 5;
int ff()
{
return tt;
}
JavaQuiz5(){
System.out.println("s="+s +" ss="+ss+
" f="+f()+" ff="+ff());
}
public
static void main(String[]args) {
new JavaQuiz5();
}
}
Come
al solito non dobbiamo far eseguire il programma al nostro compilatore/interprete
Java preferito. I nostri sono quiz mentali! Dobbiamo invece ragionare sull'esercizio
stesso, analizzarlo e risolverlo.
Analizzandolo
possiamo vedere che è composto di due parti molto simili tra di
loro: si differenziano solo per l'uso del modificatore final
che è presente nelle dichiarazioni di s
e t,
ma assente invece in quelle di ss
e tt.
Ciò può essere suffciente per poter prevedere quali valori
in fase di stampa?
La
soluzione al prossimo mese (oppure immediatamente dal vostro compilatore/interprete
Java preferito se non avete la pazienza di leggere la mia risposta).