miércoles, 2 de octubre de 2013

referencias estáticas

Dentro de los métodos estáticos de una clase no podemos acceder a variables o métodos que no lo sean.

Variable de instancia a y método también de instancia unMetodo.

package libro;

public final class TestEstatico {

  private int a = 0;
  public void unMetodo() {
   System.out.println("este es unMetodo().");
 }
 
 public static void main(String[] args) {
  System.out.println("a vale " + a);
  t.unMetodo();
 }
}

Nos mostrara el siguiente error:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
 Cannot make a static reference to the non-static field a

  at libro.TestEstatico.main(TestEstatico.java:14)

Lo correcto es definir la variable a y metodo unMetodo como estáticos:

private static int a = 0;

La otra opción será crear dentro del método main una instancia de la clase y acceder a la variable y al método a través de esta, como veremos a continuación.

package libro;

public final class TestEstatico {

  private int a = 0;
  public void unMetodo() {
   System.out.println("este es unMetodo().");
  }
 
  public static void main(String[] args) {

   TestEstatico t = new TestEstatico();
   System.out.println("a vale " + t.a);
   t.unMetodo();
  }
}

No hay comentarios:

Publicar un comentario