Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Q significa sobrecargar el toString?? (http://www.forosdelweb.com/f45/q-significa-sobrecargar-tostring-580283/)

hiana 26/04/2008 13:32

Q significa sobrecargar el toString??
 
Hace poquito realice una pregunta con respecto a un array de String, la cual fue “Porque me muestra [Ljava.lang.String;@10b62c9
” el sgte programa:

package ar.edu.unlam.tallerjava.tp;

Código PHP:

public class HelloWorld {
    public static 
void main (String [] args){
        
String texto1="Trabajo";
        
String texto2="Practico";
        
String texto3="Numero 1";
        
String texto4="Taller";
        
String texto5="Java";
        
        [
COLOR="YellowGreen"]//guardo las 5 variables string en un array de string[/COLOR]
        
String textoCompleto[]=new String[5];
        
textoCompleto[0]=texto1;
        
textoCompleto[1]=texto2;
        
textoCompleto[2]=texto3;
        
textoCompleto[3]=texto4;
        
textoCompleto[4]=texto5;
        
        [
COLOR="yellowgreen"]//imprimo el array solo con su nombre[/COLOR]
        
System.out.println(textoCompleto);
    }



Muy amablemente XenZo me contesto: Lo que te muestra es la dirección de memoria del Objeto array, y eso es debido a que no tiene sobrescribo el toString, deberías sobrescribirlo para que te mostrara lo que contiene.

Pero no se a que se refiere con eso (o sea lo de sobrescribir), anduve averiguando y el toString es algo que invoca por defecto el jvm (java virtual machine) cuando se llama a System.out.println ()…

Me podrían informar un poquito sobre esto y como seria la sobrescritura en este programita??

Muchisimas gracias adelantadas y lindo finde!!

vdpazmino 26/04/2008 14:19

Re: Q significa sobrecargar el toString??
 
Te explico un poco cada clase de java hereda de la clase Object, en la clase object esta el metodo toString() como otros metodos mas te pongo un ejemplo de como sobreescribir el metodo toString

Código PHP:

public class Persona{
        private 
String nombre;

        public 
Persona(String n){
                
this.nombre n;
         }

        
//aqui se sobreescribe el metodo
        
@Override
        
public String toString(){
               return 
nombre;
        }


La clase anterior sobreescribe el metodo toString indicando que devuleva el nombre de la persona, ahora cuando tu llama al metodo System.out.println() y le envias como parametro un objeto lo que hace el metodo es llamar a la funcion toString del metodo por ejemplo

Código PHP:

         Persona p = new Persona("Maria");
         
System.out.println(p); 

el resultado del codigo anterior es que te imprimime en consola "Maria", espero que te ayude con tu duda

salu2

XenZo 28/04/2008 03:32

Re: Q significa sobrecargar el toString??
 
Muy buena explicacion! :aplauso:

Bien de todas maneras no te compliques, la forma mas sencilla ya te la explico otro compañero en otro hilo:
Código PHP:

for(int i=0;i<array.size();i++){
System.out.println("El valor es: " + array.get(i));


Y esto te mostraria linea por linea el contenido de tu array sin ningun tipo de complicacion.

Un saludo!! :adios:

hiana 29/04/2008 17:35

Re: Q significa sobrecargar el toString??
 
GRACIAAAASSSS!!!!!!!

Besottototes!!

djagu_26 30/04/2008 07:36

Re: Q significa sobrecargar el toString??
 
Para que te sea util tambien se puden redefinir los metodos equals() y clone() de la clase aparte del toString(),
saludos


La zona horaria es GMT -6. Ahora son las 08:44.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.