.
Pero pon el codigo, yo estoy empezando tambien con java , pero eso de "; expected" es que te falta un ; vaya, seguramente en el out.print
hmm una cosa, si muestra algo por pantalla no deberia de ser void no?
es que yo eso lo se hacer si el metodo es string, pero al tener tambien un int ni idea
lo que yo digo si añoNacimiento fuera String seria
String muestraDatos(){
return nombre + " " +dni+ " " +añoNacimiento;
Persona javi = new Persona ("Javi", "33011032Z","1990") ;
System.out.println(javi.muestraDatos());
Nada nada, acabo de releer lo que he puesto y era una gilipollez enorme xD
Por probar prueba con printf a ver que te dice xD
hmm entonces no entiendo muy bien lo que quieres hacer XD
lo que hice yo es crear el objeto ya con los datos que recibe el constructor, y el metodo simplemente devuelve esos datos.
que por cierto lo de this.nombre no se que es, mi constructor es asi :
Persona(String n, String d, String a){
nombre = n;
dni = d;
añoNacimiento = a;
}
#5 Tienes un cacao grande con lo que hace el método xD
"muestraDatos()" es un método que al ser llamado realiza los diferentes print. No se tiene que meter dentro de un System.out.println(muestraDatos())
Obviamente, esto último no tiene sentido ya que muestraDatos no retorna nada, pero tampoco es el objetivo que tiene #1 con esa función.
#1 He usado tu clase y a mi me va todo ok:
public class Main {
public static void main(String[] args) {
Persona p = new Persona("Juan", "00000000X", 1990);
p.muestraDatos();
}
}
Salida:
Datos de la persona:
Nombre: Juan
DNI: 00000000X
Año de nacimiento: 1990
A ver, que esto se está liando xD
Yo digo que con la clase que han puesto en #1 en pantalla ya se muestra correctamente los resultados (y en #9 pongo un main de ejemplo).
Lo que no tiene lógica, #11, es que digas: lo ejecuta pero no muestra nada por pantalla, cuando justamente su ejecución lo que hace es llamar a System.out.println(str)
Vale acabo de probar el metodo con void sin return tal como yo lo tenia corrigiendo eso del System.out.println y funciona.
Creo que ya lo he pillado, al ser void no se puede meter en el out.print pero lo incluyes dentro del metodo y lo llamas, no ?
bueno, me ha sido util el post la verdad XD.
#13 Me pierdo con lo que pides xD No tiene mucho sentido llamar a un método si no es sobre un objeto, y por lo tanto tiene que estar creado (bueno, existen los métodos de clase, pero no creo que tengan que intervenir aquí para nada).
Si tu tienes a una persona y quieres mostrar sus datos tienes que tener el objeto persona, y por lo tanto este tiene que estar creado.
No uso bluej así que no se realmente que es lo que te pasa, si estás escribiendo código no entiendo las limitaciones que pones xD (a no ser que tenga interficie gráfica o yo que se, pero si estáis empezando no tendría mucho sentido que os metieran una interficie).
#14 Una acción (método que retorna void) no retorna nada, por eso no tiene sentido meterlo dentro de System.out.println ya que esto tiene un parámetro que es un String, pero un void no retorna nada.
Simplemente lo que se pide es un método que al ser llamado escriba por consola las cosas, y eso es lo que ha realizado: un método que realiza los prints necesarios para generar esa salida.
Esto pasa por enseñaros a programar con estas mierdas xD
Con un Eclipse o un Vim + JDK metía yo, que es esto de enseñar programación con dibujitos de objetos xD.
El problema supongo que es por como usas el programa o alguna gilipollez que tenga. El método correcto es: escribe por pantalla lo que te han pedido
He bajado el programa ese para ver como era y, además de reafirmarme en la chorrada que es, veo cual es tu fallo.
Al crear el objeto te estás comiendo las comillas de los strings, tienes que poner el nombre y DNI entre comillas (mira mi programa en #9).
Debes de recordar que los strings siempre son "frases entre comillas". Un carácter se pone entre comillas simples 'a' (eso sería char a), que es diferente de "a" (esto es el string formado por los carácteres 'a''\0', los strings siempre acaban en '\0', pero eso ahora no te afecta, es un dato más que te llevas xD)