Autor Tema: Exception in thread main java.lang.Error Unresolved compilation proble CU00683B  (Leído 7274 veces)

camoay

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 44
    • Ver Perfil
Hola a tod@s, aquí les dejo mis respuestas al ejercicio CU00683B del manual de desarrollador Java:

Código: [Seleccionar]
package com.aprenderaprogramar.java.iniciacion.clase83;

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

EJERCICIO:

¿Qué mensaje de error se obtiene?

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
   Cannot use this in a static context
   at com.aprenderaprogramar.java.iniciacion.clase83.Test.main ( Test.java:8 )

¿Por qué se obtiene este mensaje de error?

Porque desde un método estático estamos llamando a un método de instancia de la
propia clase Test,de la que no se ha generado ningún objeto previo,por lo que
tampoco existe el campo declarado atributo1 que es también un atributo de
instancia de la misma clase.

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

Declarando como estáticos, tanto al método getAtrib1(), como el campo atributo1.
De esa manera no hay necesidad de crear ningún objeto previo, porque se
convierten ambos en campos y métodos de clase.

Gracias por sus comentarios.
« Última modificación: 01 de Octubre 2016, 18:29 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola camoay, tus respuestas son correctas. En https://www.aprenderaprogramar.com/foros/index.php?topic=2354.0 puedes encontrar comentarios útiles.

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".