Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jotase1507 en 25 de Febrero 2015, 16:39

Título: Solucion Ejercicio CU00683B - Concepto de métodos de clase o static Java
Publicado por: jotase1507 en 25 de Febrero 2015, 16:39
Buenos dias, primero respondere las preguntas.

¿Qué mensaje de error se obtiene?

Se obtiene el siguiente mensaje: "variable no-static "this" no puede hacer referencia a partir de un contexto static"

¿Por qué se obtiene este mensaje de error?

Se obtiene ya que el metodo main, al ser static, no puede ejecutar metodos que se encuentren fuera del mismo, para esto es necesario crear los metodos en una clase aparte.

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

Para que se ejecute haria lo siguiente (al menos yo)

Clase Atributo
Código: [Seleccionar]
public class Atributo {
    int atributo1;
    Atributo (int atrib) {
        atributo1 = 0;
    }
    public int getAtrib1() {
        return atributo1;
    }
}

Clase Main
Código: [Seleccionar]
public class Main {
    public static void main (String[ ] Args) {
        Atributo atrib = new Atributo(0);
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale " + atrib.getAtrib1());
    }
}
Título: Re:Solucion Ejercicio CU00683B - Concepto de métodos de clase o static y métodos...
Publicado por: toni_apr en 25 de Febrero 2015, 22:28
Hola jotase

Solución correcta. OK

Nota: Puedes hacer lo mismo sin dividir la clase:

Código: [Seleccionar]
public class Test {
    int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        Test miTest = new Test(15);
        System.out.println ("Mensaje 1");
//         System.out.println ("Atributo 1 vale " + this.getAtrib1());
        System.out.println ("Atributo 1 vale " + miTest.getAtrib1());
    } //Cierre del main
    public int getAtrib1() {return atributo1;}
} //Cierre de la clase

Saludos