Programación en castellano
-Tutoriales

Introducción a Java


Elementos estáticos

Ahora estamos en mejor disposición para entender un poco mejor en qué consiste eso de declarar a métodos y propiedades como estáticos. Se declara uno de estos elementos como estático cuando queremos que sólo exista una copia del mismo.

Si escuchas a gente hablar de clases estáticas en Java, que sepas que miente. Se llama así coloquialmente a las clases que tienen todos sus métodos y propiedades estáticos y que no permiten ser instanciadas (como pasa con Math). Ese tipo de clases suelen ser repositorios de métodos y/o propiedades y suelen alejarse un poco de la idea de programación orientada a objetos.

Las propiedades y métodos estáticos (en clases que no lo son) traen otro problema añadido. Desde los métodos "normales" podremos acceder a todas ellas, pero desde los estáticos sólo podemos acceder a los estáticos. Esto es debido a que, cuando llamamos a un método no estático, Java le pasa implícitamente (uséase, que nosotros ni nos enteramos) como parámetro la referencia this, que como sabemos apunta a la instancia actual. En el caso de los métodos estáticos esto no sucede, por lo que dentro del código del método no sabe qué instancia le ha llamado y por tanto no puede acceder a la copia de las variables de dicha instancia, sólo a la copia única de las propiedades y métodos estáticos.

Un problema de las propiedades estáticas es su inicialización. Puesto que son comunes a todas las instancias de un objeto, no es buena idea hacerlo desde un constructor ya que inicializaría dichas propiedades cada vez que se creara una instancia nueva. Normalmente se puede inicializar en la misma declaración:

static int i = 324;

Pero, en algunos casos, puede ser necesario algo más complicado. O quizá simplemente queramos separar la declaración de la variable de su inicialización. En ese caso utilizaremos la siguiente sintaxis:

Inicializando.java
public class Inicializando {
  static String mensaje;
  static {
    mensaje = new String("Este es el mensajito");
  }
  public static void main(String[] args) {
    System.out.println(mensaje);
  }
}

Vemos, además, reflejado en este ejemplo el hecho de que los métodos estáticos pueden acceder a otros miembros estáticos de la clase.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados