enrique-j
8/29/2018 - 4:28 PM

static

Los campos que tienen el staticmodificador en su declaración se llaman campos estáticos o variables de clase .

Cada instancia de la clase comparte una variable de clase, que está en una ubicación fija en la memoria. Cualquier objeto puede cambiar el valor de una variable de clase, pero las variables de clase también se pueden manipular sin crear una instancia de la clase.

Métodos de clase

El lenguaje de programación Java admite métodos estáticos y variables estáticas. Los métodos estáticos, que tienen el staticmodificador en sus declaraciones, deben invocarse con el nombre de clase, sin la necesidad de crear una instancia de la clase, como en

ClassName.methodName(args)

No todas las combinaciones de variables y métodos de instancia y clase están permitidas:

Los métodos de instancia pueden acceder a variables de instancia y métodos de instancia directamente.

Los métodos de instancia pueden acceder directamente a las variables de clase y los métodos de clase.

Los métodos de clase pueden acceder directamente a las variables de clase y los métodos de clase.

Los métodos de clase no pueden acceder directamente a variables de instancia o métodos de instancia; deben usar una referencia de objeto. Además, los métodos de clase no pueden usar la thispalabra clave ya que no hay ninguna instancia para thisreferirse.

Constantes

El staticmodificador, en combinación con el finalmodificador, también se usa para definir constantes. El finalmodificador indica que el valor de este campo no puede cambiar.

Por ejemplo, la siguiente declaración de variable define una constante nombrada PI, cuyo valor es una aproximación de pi (la relación de la circunferencia de un círculo a su diámetro)

static final double PI = 3.141592653589793;

Las constantes definidas de esta manera no se pueden reasignar, y es un error en tiempo de compilación si el programa intenta hacerlo. Por convención, los nombres de los valores constantes se deletrean en letras mayúsculas. Si el nombre se compone de más de una palabra, las palabras están separadas por un guión bajo (_).