E allora c'è un problema in più.
Quella variabile non è nemmeno statica. Solo gli oggetti statici possono essere invocati anteponendo il nome della classe, tutti gli altri oggetti sono riferiti a ciascuna istanza della classe, quindi possono essere referenziati solo dalla particolare istanza.
Per comprendere bene il tuo errore:
codice:public class Numero { int num; public Numero(int value) { num = value; } }
Creo 3 oggetti della classe Numero:
codice:Numero a = new Numero(1); Numero b = new Numero(2); Numero c = new Numero(3);
Cosa dovrebbe restituire Numero.num? Non ha nessun senso... la variabile "num" varrà 1 per l'oggetto "a", varrà 2 per l'oggetto "b" e varrà 3 per l'oggetto "c". Quindi, ha senso chiedere il valore "num" solo alla particolare istanza e non alla classe, che non può sapere quale particolare valore tu vuoi (potrebbe anche non esisterne nessuno, se non hai creato alcuna istanza).
Gli oggetto "statici", invece, non sono legati alle singole istanze della classe, ma sono legati alla classe (quindi, condivisi da tutte le istanze). In questo caso ha senso richiamare il valore di una variabile "di classe" anteponendo il nome della classe.
In breve: fai diventare statica la variabile "numRaz2" e studia per bene la differenza fra campi statici (di classe) e campi non statici (di istanza).
Ciao.![]()



Rispondi quotando