Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: barriway en 15 de Julio 2015, 10:52

Título: variable no-estática, no puede ser referenciada desde contexto estático CU00683B
Publicado por: barriway en 15 de Julio 2015, 10:52
Hola buenos días.

Estas son mis respuestas al ejercicio propuesto.

1.¿Qué mensaje de error se obtiene?


Nos señala que existe un error en la palabra 'this' de la línea:

System.out.println ("Atributo 1 vale" + this.getAtrib1());
 
El compilador nos devuelve el mensaje "variable no-estática, no puede ser referenciada  desde un contexto estático". 


2.¿Por qué se obtiene este mensaje de error?

La palabra this en java se utiliza para hacer referencia a 'el objeto actual' y en el contexto en el que nos encontramos el compilador no puede encontrar un objeto al cual hacer referencia. Por otra parte, se está invocando a método de instancia el cual tiene que aplicarse sobre un objeto, y a esa altura de código el objeto no ha sido creado.


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

Como nuestra pretensión es acceder al contenido del atributo atributo1 de un objeto de la clase Test, primeramente deberíamos de crear un objeto de dicha clase y luego invocar al  método getAtrib1() del objeto creado.
En la parte de código dejo una posible solución al ejercicio.

Código: [Seleccionar]
public class Test {
    int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        Test test=new Test(5);// Se crea el objeto
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + test.getAtrib1());// Se aplica el método sobre el objeto
    } //Cierre del main
    public int getAtrib1() {return atributo1;}
} //Cierre de la clase

Un saludo.
Título: Re:Curso JAVA ejercicio CU00683B . Concepto de métodos de clase o static
Publicado por: Lorenzo31 en 15 de Julio 2015, 11:04
Buenos días,

Vale lo veo correcto y la solucion que propones también ;) sigue así.
Título: Re:variable no-estática, no puede ser referenciada desde contexto estático CU00683B
Publicado por: Alex Rodríguez en 16 de Julio 2015, 14:07
Hola, en www.aprenderaprogramar.com/foros/index.php?topic=2354 se discute también otra forma de solucionarlo por si se quieren ver alternativas. Saludos.