Categorías destacadas
programacion php    
Artículo
20
¡votar!

 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.

Publicado por:
Administrador
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon