Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con toString (novato)

Estas en el tema de Problema con toString (novato) en el foro de Java en Foros del Web. hola amigos, les cuento soy novato en java y estoy haciendo un pequeño programa en consola y mi problema es con el metodo toString al ...
  #1 (permalink)  
Antiguo 09/11/2010, 21:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 14 años, 6 meses
Puntos: 0
Problema con toString (novato)

hola amigos, les cuento soy novato en java y estoy haciendo un pequeño programa en consola y mi problema es con el metodo toString al pasarle un metodo float o int para luego imprimirlo desde la clase principal me tira este error "incompatible types - found int but expected java.lang.String" mi codigo es el siguiente:
Código PHP:
 public int getCuenta()// metodo al q quiero llamar a imprimir desde el main
    
{
        return 
numCuenta;
    }


public 
String toString()//metodo toString
   
{
       return 
getCuenta();
    } 
como lo puedo hacer para castear el metodo gerCuenta() para imprimirlo desde el main????

Agradeceria mucho su ayuda amigos ya q he buscado y no he podido dar con la solucion ... de antemano muchas gracias... bye
  #2 (permalink)  
Antiguo 09/11/2010, 21:55
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 12 años, 5 meses
Puntos: 4
Respuesta: Problema con toString (novato)

Cita:
Iniciado por r0xdrig0 Ver Mensaje
hola amigos, les cuento soy novato en java y estoy haciendo un pequeño programa en consola y mi problema es con el metodo toString al pasarle un metodo float o int para luego imprimirlo desde la clase principal me tira este error "incompatible types - found int but expected java.lang.String" mi codigo es el siguiente:
Código PHP:
 public int getCuenta()// metodo al q quiero llamar a imprimir desde el main
    
{
        return 
numCuenta;
    }


public 
String toString()//metodo toString
   
{
       return 
getCuenta();
    } 
como lo puedo hacer para castear el metodo gerCuenta() para imprimirlo desde el main????

Agradeceria mucho su ayuda amigos ya q he buscado y no he podido dar con la solucion ... de antemano muchas gracias... bye


Hola! A ver creo haber entendido.

-Esta claro que getCuenta() es de tipo int

-En el metodo toString() que definis tendria que devolver un String.
Pero como dijimos getCuenta() es de tipo int, por lo que tendriamos que castear el int en String.
Lo hacemos de la siguiente manera.

Código Java:
Ver original
  1. public String toString(){
  2.  
  3.         return Integer.toString(getCuenta());


Saludos! avisa si te sirvio pq sino no voy a poder dormir!
  #3 (permalink)  
Antiguo 09/11/2010, 21:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema con toString (novato)

jajajaja obvio q me sirvio leocente!!!! muchas gracias man y cualquier cosa puedo volver a postear??? jejejeje slds!!!!
  #4 (permalink)  
Antiguo 09/11/2010, 22:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema con toString (novato)

otra duda lo q pasa q tengo la clase persona y la clase cuenta y cuenta tiene un atributo del tipo persona llamado propietario y ahora mi problema es como castear ese atributo propietario q es del tipo persona como lo casteo en el toString para imprimirlo en el main?? ya q al castearlo asi
Código PHP:
public String toString()
   {
       return 
Persona.toString(getPropietario()) ;
    } 
me da este error "cannot find symbol- method toString(Persona)"

el metodo getPropietario es :
Código PHP:
 public Persona getPropietario()
    {
        return 
propietario;
    } 
como debo castearlo correctamente para mostrarlo desde el main??? porfavor ruego su ayuda amigos de antemano gracias... bye
  #5 (permalink)  
Antiguo 09/11/2010, 22:39
 
Fecha de Ingreso: septiembre-2009
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con toString (novato)

Cita:
Iniciado por r0xdrig0 Ver Mensaje
otra duda lo q pasa q tengo la clase persona y la clase cuenta y cuenta tiene un atributo del tipo persona llamado propietario y ahora mi problema es como castear ese atributo propietario q es del tipo persona como lo casteo en el toString para imprimirlo en el main?? ya q al castearlo asi
Código PHP:
public String toString()
   {
       return 
Persona.toString(getPropietario()) ;
    } 
me da este error "cannot find symbol- method toString(Persona)"

el metodo getPropietario es :
Código PHP:
 public Persona getPropietario()
    {
        return 
propietario;
    } 
como debo castearlo correctamente para mostrarlo desde el main??? porfavor ruego su ayuda amigos de antemano gracias... bye
Que tal r0xdrig0!! Bueno te comento: el método toString() es un método que heredan automaticamente todos tus objetos, en tu caso Persona y Cuenta si escribes en alguna parte de tu código, en la que se pueda ejecutar la siguiente instrucción:
Código:
System.out.println("\n" + Persona + "\n" + Cuenta);
obtendras una salida con el siguiente formato [email protected]#### en donde NombreClase pues obviamente es el nombre de tú clase y #### es el código Hash que se le asigna a tú objeto te pongo una salida de ejemplo:
Código:
System.out.println("\n" + this + "\n" + new Object());
Y esta es mi salida:
Lo maravilloso de esto es que no estas obligado a tener siempre una salida con el formato que te coloque arriba; tú puedes redefinir el cuerpo de este método para proporcionar una salida totalmente diferente.
Pero bueno me desvie por completo a tú pregunta , el problema que tienes es que debes de tener un método en la clase Persona que acepte como argumento un objeto de tipo persona.
Ejemplo:
Código java:
Ver original
  1. public class Persona{
  2.     public Persona(){}
  3.  
  4.     public String toString(Persona p){
  5.            System.out.print("Esté es el objeto: " + p.nombre);
  6.     }
  7. }
Al momento que agregues ese método a tú clase Persona ya no te deberia de salir el mensaje de error.

Exitos!!!!

Etiquetas: tostring
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:52.