Autor Tema: non-static variable this cannot be referenced from a static context CU00683B  (Leído 2690 veces)

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Citar
¿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?

el código fuente incompilable - variable no estática esto no se puede hacer referencia a partir de un contexto estático

¿Por qué se obtiene este mensaje de error?

Yo pienso como el metodo main es estático y el otro es un objeto y como dice que ante de ejecutar el programa están las clase pero no el objeto.

¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?

La solución que yo encontré es crear una clase que le llame prueba y después instan ciar desde el método main para ejecutarlo.

El código quedaría como este.

Clase principal main

Código: [Seleccionar]
package test;

public class Test {

    public static void main(String[] args) {
        Prueba prueba = new Prueba();
        System.out.println("Mensaje 1");
        System.out.println("Atributo 1 vale" + prueba.getAtrib1());
    }

}


Clase prueba es la nueva clase que cree

Código: [Seleccionar]
package test;

public class Prueba {

    private int atributo1;

    public Prueba() {
    }

    Prueba(int atrib) {
        atributo1 = 0;
    }

    public int getAtrib1() {
        return atributo1;
    }

}
« Última modificación: 18 de Mayo 2016, 11:54 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola DRANXZ88, a la hora de plantear una solución la idea era hacerlo sin crear una nueva clase. Puedes ver cómo se puede hacer en este ejercicio de otro compañero: https://www.aprenderaprogramar.com/foros/index.php?topic=2354.0

Saludos

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Ejercicios corregidos
Código: [Seleccionar]
package test;

public class Test {

    static int atributo1;

    Test(int atrib) {
        atributo1 = atrib;
    }

    public static void main(String[] args) {
        atributo1 = 8;
        System.out.println("Mensaje 1");
        System.out.println("Atributo 1 vale " + getAtrib1());
    }

    public static int getAtrib1() {
        return atributo1;
    }

}

Hice como me recomendaste gracia :) :)

 

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".