Hola a todos, hoy os explicare que es y para que sirve el método toString, nos sera útil para nuetras clases en Java.
El método toString nos permite mostrar la información completa de un objeto, es decir, el valor de sus atributos.
Este método también se hereda de java.lang.Object, por lo que deberemos sobrescribir este método. Esta es su definición:
public String toString (){ String mensaje="El empleado se llama "+nombre+" "+apellido+" con "+edad+" años " + "y un salario de "+salario; return mensaje; }
El mensaje puede ser como nosotros queramos.
Veamos un ejemplo practico:
public class EmpleadoApp { public static void main(String[] args) { //Creamos dos objetos distintos Empleado empleado1=new Empleado("Fernando", "Ureña", 23, 600); Empleado empleado2=new Empleado("Antonio", "Lopez", 28, 900); Empleado empleado3=new Empleado("Alvaro", "Perez", 19, 800); //Mostramos la informacion del objeto System.out.println(empleado1.toString()); System.out.println(empleado2.toString()); System.out.println(empleado3.toString()); } }
Este es el resultado:
Algo a tener en cuenta, es que si tenemos un método toString definido, al mostrar el objeto sin mas (sin invocar nada), ejecutara por defecto este método, de forma que si modificamos el anterior ejemplo, obtendrá el mismo resultado.
public class EmpleadoApp {</pre> public static void main(String[] args) { //Creamos dos objetos distintos Empleado empleado1=new Empleado("Fernando", "Ureña", 23, 600); Empleado empleado2=new Empleado("Antonio", "Lopez", 28, 900); Empleado empleado3=new Empleado("Alvaro", "Perez", 19, 800); //Mostramos la informacion del objeto System.out.println(empleado1); System.out.println(empleado2); System.out.println(empleado3); } }
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Excelente explicación, en el último ejemplo, me parece tienes un pequeño error de edición luego de la declaración de la clase, saludos.
Me gustaría saber que diferencia hay en usar el método toString() heredada de la clase Object y cuando uno define los geters y seters para poder acceder a los valores de las propiedades instanciadas de una clase?
Pues claro está que sobre escribe los métodos(ya sea getters o setters), pero si no genero dichos métodos, el método toString() toma a los objetos como cadena, la pregunta es: ¿Es una buena práctica no generar getters y setters, y solo trabajar con el método toString?, agradezco de antemano; saludos.
Por que el metodo toString se ejecuta por defecto???
Porque es un metodo de la clase Object, todas las clases vienen de la clase padre Object
mira un ejemplo
class Hola extends Object{
}
Muchas gracias por la explicación.
gracias brou
Muy Buena Explicación, Me Sirvió Mucho! Gracias <3
Hola . Si el objeto tubiera 4 atributos y (supongamos fueran empleados) y dos empleados tienn 3 atributos como hago para que no aparezca null al imprimir. saludos y gracias
Al pasar un numero double y colocarle los puntos de mil y de millon, el metodo me genera un error y no muestra dichos numeros con sus unidades como puedo solucionarlo, gracias Fernando.