La palabra reservada static en Java

En Java, vamos a llamar miembro estático a una parte de una clase (variable o método) que tenga asociada la palabra reservada “static”. Un miembro estático no está asociado con ninguna instancia de la clase que lo contenga, sino que pertenece a la clase misma. ¿Qué quiero decir con esto? Que podemos acceder a los miembros estáticos de una clase sin la necesidad de crear instancias de la misma.

Existen dos tipos de miembros estáticos como bien dijimos: variables estáticas y métodos estáticos.

Variables Estáticas:

Se trata de una variable declarada con la palabra static, por ejemplo:

      private static int contador;

Por convención, la mayoría de los programadores tienden a respetar esa estructura (visibilidad+palabra static+...) pero también funciona si colocamos la palabra static al principio de la declaración y luego la visiblidad (public, private, protected).

El valor de una variable estática es el mismo en todas las instancias de la clase. Por ejemplo, si una clase tiene una variable estática nombreDeLaEmpresa, con un valor asignado “Empresa X S.A.”, entonces todos los objetos creados desde la clase tendrán ese mismo valor “Empresa X S.A.” para esa variable nombreDeLaEmpresa.

Las variables estáticas son creadas e inicializadas cuando se carga por primera vez la clase. Esto sucede cuando un miembro estático de la clase es mencionado (Clase.miembroEstático;) o cuando se crea una instancia de la clase, lo que ocurra primero.

Métodos Estáticos:

Al igual que las variables estáticas, se trata de métodos declarados con la palabra static, por ejemplo:

     public static void calcularSaldo(int parámetro);

También están asociados con la clase misma y no con un objeto particular creado desde la clase. Es decir, no se necesita crear ningún objeto de una clase para que se puedan usar los métodos estáticos definidos en ella.

El método más conocido es el public static void main, que es llamado por la máquina virtual de Java al iniciar una aplicación. Este método debe ser estático, lo que significa que las aplicaciones se ejecutan en un contexto estático por defecto.

Sin embargo existen reglas que debemos respetar a la hora de trabajar con métodos estáticos. Una de ellas es que no se puede acceder a métodos o variables que NO SEAN estáticos desde un método estático. Esto se debe a que los métodos estáticos no tienen una instancia de la clase que es la que se utiliza para referenciar variables o métodos de instancia.





No comments:

Post a Comment