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