Autor Tema: Acceder a un atributo de clase desde el método main Java Ejercicio CU00683B  (Leído 5411 veces)

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
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

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

Código: [Seleccionar]
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.
« Última modificación: 08 de Mayo 2015, 08:46 por Alex Rodríguez »

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Re:Ejercicio CU00683B Metodos de clase o Static
« Respuesta #1 en: 07 de Mayo 2015, 16:16 »
Hola el_calderas! Tu ejercicio está muy bien respondido y la solución que ofreces funciona perfecto. Nada que señalar! Sigue así!

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicio CU00683B Metodos de clase o Static
« Respuesta #2 en: 08 de Mayo 2015, 08:45 »
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.

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Re:Ejercicio CU00683B Metodos de clase o Static
« Respuesta #3 en: 28 de Mayo 2015, 15:32 »
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.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".