Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Duda con el metodo toString()

Hola a todos tengo una duda con el siguiente codigo. Ojala me puedan ayudar a comprender.


package Dudas;
import java.util.*;
class WaterSource{
private String s;
WaterSource(){
System.out.println("WaterSource()");
s="Constructed";
}
public String toString(){
System.out.println("entre aqui 1");
return s;
}
}
public class Duda1 {
private String valve1,valve2;
private WaterSource source =new WaterSource();
private int i;
private float f;
public String toString(){
System.out.println("entre aqui 2");
return
"valve1= " + valve1 + " " +
"valve2= " + valve2 + " " +
"i= " + i + " " +
"f= " + f + " " +
"source= " + source;
}
public static void main(String[] args){
Duda1 duda1= new Duda1();
System.out.println(duda1);
}
}

la salida es la siguiente:
WaterSource()
entre aqui 2
entre aqui 1
valve1= null valve2= null i= 0 f= 0.0 source= Constructed

Mi duda es en que momento el metodo toString() de la clase WaterSource le asigna el valor de "s" a la referencia "source" para que dicha referencia cambie a un objeto de tipo String(Ya que originalmente "source" apuntaba a un objeto de tipo WaterSource) y luego imprimirlo en pantalla.

agosto 7, 2015 | Unregistered Commentersaal

El método toString se llama automáticamente cuando hace falta un string . Al usar un operador de concatenación si un operando es un string se crean strings para los otros que no lo son

agosto 11, 2015 | Unregistered Commenteromar