En general, las variables públicas pueden ser accedidas por todos, y las variables privadas solo se puede acceder desde dentro de la instancia actual de la clase. En su ejemplo, puede acceder a la variable x
desde el método main
, porque ese método está dentro de la clase Estática.
Si se está preguntando por qué puede acceder a él desde otra instancia de clase estática que la que tiene actualmente (que generalmente no está permitido para variables privadas), es simplemente porque las variables estáticas no Existen en base a cada instancia, pero por clase. Esto significa que se puede acceder a la misma variable estática de A desde todas las instancias de A.
Si este no fuera el caso, nadie podría acceder a la variable estática privada en absoluto, ya que no pertenece a una instancia, sino a todas.
¿Por qué no? ¿Tiene una razón por la que cree que no debería ser posible? – EJP
También podría hacer Static.x sin necesidad de crear un objeto. – nikhil
IIRC, Josh Bloch ha dicho que permitir esto fue una mala decisión. –