Función toString para clases en Java

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:

toString

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.

Compartir

10 comentarios

  1. Manny

    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.

  2. Franklin

    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?

  3. Franklin

    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.

  4. rafael

    Por que el metodo toString se ejecuta por defecto???

  5. Jean Soto

    Porque es un metodo de la clase Object, todas las clases vienen de la clase padre Object

    mira un ejemplo

    class Hola extends Object{

    }

  6. Germán Cifuentes

    Muchas gracias por la explicación.

  7. Luis Vidrio

    Muy Buena Explicación, Me Sirvió Mucho! Gracias <3

  8. wanda

    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

  9. Luis Fernando

    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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *