Buenas tardes, ahi va mi respuesta
Intenta compilar el siguiente código:
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?non static variable this cannot be referenced from a static context
¿Por qué se obtiene este mensaje de error?Bueno el metodo main al ser static, solo puede acceder a variables y metodos de su clase si son static también, sino se entiende que son variables y metodos de instancia y no de clase.
En concreto el error en el this, aunque ponga en static la variable y el metodo sigue persistiendo.
    System.out.println ("Atributo 1 vale" + this.getAtrib1());   Al quitarlo compila y hace lo que queremos, deduzco que tiene que ver con que "this." hace referencia a la variable de instancia y no de Clase, aunque buscando no lo he podido confirmar cien por cien seguro.
Encontré esto para asegurarme de que no decía una barbaridad.
this
Al acceder a variables de instancia de una clase, la palabra clave this hace referencia a los miembros de la propia clase en el objeto actual; es decir, this se refiere al objeto actual sobre el que está actuando un método determinado y se utiliza siempre que se quiera hace referencia al objetoactual de la clase.
¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?
/**
 * Write a description of class Test here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
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" + getAtrib1() );
        
    } //cierre main
     static public int getAtrib1() { return atributo1; } 
} //cierre clase
También me funciona añadiendo 
Test.getAtrib1() pero no con el 
this.getAtrib1 lo que me dio la idea de pensar que this se referia al metodo o variable de instancia y no de clase.
System.out.println ("Atributo 1 vale" + Test.getAtrib1() );
P.D. por lo que veo no acierto con mi deducción del this.getAtrib1, si se refiere a la clase no a instancia, pero aun así me da error y no comprendo porque, poniendo todo static, en cambio Test.getAtrib1 no da error, aunque deberian ser lo mismo. Si alguien puede ilustrarme lo agradeceré porque no lo veo.