Foro sobre Java SE > Problema con ejercicio de aprendizaje.
¡Un código invisible!
No hay duda de que el ejercicio es complicado :D
Hola a todos, estoy intentando aprender a programar en java y estoy siguiendo el libro "Piensa en Java" en el Capitulo 2 el ejercicio 2 dice lo siguiente:
Encontrar los fragmentos de código involucrados en UnNombreDeTipo y convertirlos en un programa que se compile y ejecute.
El fragmento de codigo es este:
class UnNombreDeTipo {/*Aqui va el cuerpo de la clase*/}
UnNombreDeTipo u = new UnNombreDeTipo
Mi resolución al problema es esta:
/*Se crea la Clase*/
public class UnNombreDeTipo {
/*creo la variable i*/
int i;
/*Se crea el objeto u*/
UnNombreDeTipo u = new UnNombreDeTipo;/* Le doy el valor 0 a la variable i del objeto u*/
i.u = (0)
/*Creo el metodo main*/
public static void main(String[] args) {
/*Le digo al metodo que imprima en la consola el valor del objeto u*/
System.out.println(u.i);
}
}
Al compilar me da el siguiente error:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot make a static reference to the non-static field u
at UnNombreDeTipo.main(UnNombreDeTipo.java:7)
Podéis ayudarme a resolver y entender el ejercicio?
Gracias.
main es un método static, por lo que todas las referencias que use internamente también deben ser static.
Entonces que le pongo al método main?
Le quito el static y ya esta? O defino el método de otra manera?
Ten un poco de paciencia que estoy un poco verde todavía.
Lo que tienes que declarar como static son las referencias que se usan dentro de main, por ejemplo las variables u otros métodos que puedan declararse en la misma clase donde está main.
Igual te vendría bien leer con atención este tutorial:
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
Hola a todos, estoy intentando aprender a programar en java y estoy siguiendo el libro "Piensa en Java" en el Capitulo 2 el ejercicio 2 dice lo siguiente:
Encontrar los fragmentos de código involucrados en UnNombreDeTipo y convertirlos en un programa que se compile y ejecute.
El fragmento de codigo es este: