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:
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());
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