Autor Tema: Variable no estática no se puede referenciar desde contexto estático CU00683B  (Leído 1859 veces)

HumbertoAli

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
Buenas quisiera que me revisaran las respuestas que planteé al ejercicio CU00683B del curso de programación Java con BlueJ....

Intenta compilar el siguiente código:

Código: [Seleccionar]
public class Test {
    int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + this.getAtrib1());
    } //Cierre del main
    public int getAtrib1() {return atributo1;}
} //Cierre de la clase


¿Qué mensaje de error se obtiene? ¿Por qué se obtiene este mensaje de error? ¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?

¿Qué mensaje de error se obtiene? R:
el mensaje de error es: Variable no estática no se puede referenciar desde un contexto estático
 ¿Por qué se obtiene este mensaje de error? R: porque el método getAtrib1()  no esta declarado como un método estatic o método de clase sino como un método de instancia
 ¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos? R: se puede solucionar declarando el metodo getAtrib1() como un metodo static, asi, de la misma manera se debe indicar que la variable atributos1 es estatica. Por ultimo, en el metodo main, se debe sustituir el this.getAtrib1()); por Test.getAtrib1());

Código: [Seleccionar]
public  class Test {
    static int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale " + Test.getAtrib1());
    } //Cierre del main
    public static int getAtrib1() {return atributo1;}
} //Cierre de la clase

« Última modificación: 01 de Junio 2017, 19:21 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Respuestas correctas. Te dejo un enlace donde queda todo muy bien explicado.

https://www.aprenderaprogramar.com/foros/index.php?topic=2354.msg11208#msg11208

Saludos. ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".