Duda sencilla JAVA

perez_chuck

.

_Akiles_

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

perez_chuck

.

perez_chuck

.

_Akiles_

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());

perez_chuck

.

LR

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

_Akiles_

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;
}

dagavi

#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
perez_chuck

.

_Akiles_

#9 si pongo javi.muestraDatos(); simplemente, lo ejecuta pero no me muestra nada por pantalla eh

dagavi

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)

perez_chuck

.

_Akiles_

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.

dagavi

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

perez_chuck

.

dagavi

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

perez_chuck

.

dagavi

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)

1
perez_chuck

.

Usuarios habituales

  • perez_chuck
  • dagavi
  • _Akiles_
  • LR