In genere, le variabili pubbliche sono accessibili a tutti e alle variabili private è possibile accedere solo dall'istanza corrente della classe. Nell'esempio è possibile accedere alla variabile x
dal metodo main
, poiché tale metodo si trova nella classe Static.
Se ti stai chiedendo perché sei autorizzato ad accedervi da un'altra istanza di una classe statica rispetto a quella in cui ti trovi attualmente (che in genere non è consentito per le variabili private), è semplicemente perché le variabili statiche non lo fanno Esistono su una base per istanza, ma su una base per classe. Ciò significa che è possibile accedere alla stessa variabile statica di A da tutte le istanze di A.
In caso contrario, nessuno sarebbe in grado di accedere alla variabile statica privata, poiché non appartiene a un'istanza, ma tutte.
Perché no? Hai una ragione per cui pensi che non dovrebbe essere possibile? – EJP
Puoi anche fare Static.x non c'è bisogno di creare un oggetto. – nikhil
IIRC, Josh Bloch ha detto che consentire questa è stata una decisione sbagliata. –