Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: el_calderas en 07 de Mayo 2015, 15:21
-
Para este ejercicio estas son mis respuestas:
1) El error que recibimos es que la variable no estatica this no se puede referenciar desde un metodo estatico.
2)los metodos de clase estaticos no pueden invocar a un metodo de instancia de la misma clase, que es lo que esta haciendo this.getAtrib().
3)la solución seria crear una clase que contuviera el parametro atributo1 y el metodo getAtrib1
public class Atributo
{
int atributo1;
public Atributo(){
atributo1=0;
}
public int getAtrib1(){
return atributo1;
}
}
public class NuevoTest
{
public static void main (String[] Args){
Atributo atrib=new Atributo();
System.out.println("Mensaje 1");
System.out.println("Atributo 1 vale " + atrib.getAtrib1());
}
}
Un saludo.
-
Hola el_calderas! Tu ejercicio está muy bien respondido y la solución que ofreces funciona perfecto. Nada que señalar! Sigue así!
-
Hola, la solución propuesta soluciona el problema, pero se lleva el atributo fuera de la clase. Recomiendo consultar la solución indicada en https://www.aprenderaprogramar.com/foros/index.php?topic=2354 ya que se explica cómo mantener el atributo en la misma clase y evitar el error.
Saludos.
-
Hola, la solución propuesta soluciona el problema, pero se lleva el atributo fuera de la clase. Recomiendo consultar la solución indicada en https://www.aprenderaprogramar.com/foros/index.php?topic=2354 ya que se explica cómo mantener el atributo en la misma clase y evitar el error.
Saludos.
Gracias por el enlace, no se me habia ocurrido esa solución, de hecho, no sabia que se podia hacer asi....
Pero ahora me surge una duda sobre estas soluciones. En ambos casos, se incluye un constructor para la clase Test, y en ambos casos no se incluye la palabra Public delante. ¿por que?
Tampoco sabia que se podia instanciar la clase que contiene el Main, y creo que en ninguno de los ejercicios que he hecho hasta ahora, esta clase incluia un constructor.
Muchas gracias por la ayuda.
Un saludo.
-
Hola, en el constructor puedes incluir public si quieres (de hecho es lo más habitual). En realidad public es uno de los cuatro modificadores de acceso que permite Java, y que son: public, private, protected y "no especificado". En este caso al o declararse modificador de acceso queda como no especificado.
Aquí se explica lo que supone cada modificador de acceso: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=665:public-private-y-protected-javatipos-de-modificadores-de-acceso-visibilidad-en-clases-subclases-cu00693b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Hay cosas que son poco frecuentes pero que se hacen cuando es necesario. Por ejemplo instanciar la clase con el main. No es habitual, pero puede hacerse. Por ejemplo no especificar modificador de acceso, no es habitual, pero puede hacerse.
Saludos