Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Método toString() | Clases
Java Extendido

bookMétodo toString()

Cómo imprimir fácilmente un objeto

Para mostrar todos los datos de un objeto utilizando el comando System.out.println(object); en Java, existe un método llamado toString();.

toString()

El método toString en Java es un método incorporado que pertenece a la clase Object. Se utiliza para devolver una representación en forma de cadena de un objeto. Por defecto, cuando llamamos a toString en un objeto, devuelve una cadena que contiene el nombre de la clase seguido del hashcode del objeto. Veamos el ejemplo:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } }

HashCode

Un hashcode, en términos simples, es un identificador único para un objeto que se almacena en memoria. También podemos ver el hash code de un objeto llamando al método hashCode() sobre él, por ejemplo:

Main.java

Main.java

copy
123456789101112131415161718192021
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); int code = bob.hashCode(); System.out.println(code); } }

En este caso, surge la pregunta: ¿cómo podemos obtener algo más específico en lugar del código hash de un objeto? Para estos casos, podemos sobrescribir el método toString().

Herencia y sobrescritura de métodos son temas extensos que estudiaremos en un curso aparte. Por ahora, utilizaremos la sobrescritura de métodos solo para el método toString().

Cómo usar toString()

Para sobrescribir un método, necesitamos utilizar la siguiente sintaxis:

Main.java

Main.java

copy
1234
@Override public String toString() { // block of code }

Utilizamos la anotación @Override antes de este método. Con esta anotación, el compilador reconoce que estamos sobrescribiendo este método. A continuación, especificamos la sintaxis public String toString(), indicando exactamente qué método estamos sobrescribiendo.

En el cuerpo de este método, definiremos cómo debe representarse nuestro objeto como una cadena. Vamos a sobrescribir el método para la clase Person:

Person.java

Person.java

copy
12345678910111213141516171819
class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

El comando System.lineSeparator() se utiliza para crear una nueva línea. Hemos definido cómo debe mostrarse nuestro objeto concatenando cadenas con sus valores. Por lo tanto, cuando intentemos imprimir un objeto de la clase Person, veremos información detallada sobre cada campo. Mostremos un objeto utilizando el método main y veamos cómo se visualiza:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

Hemos obtenido información sobre la clase a la que pertenece el objeto bob y detalles sobre todos sus campos. De este modo, podemos sobrescribir y definir el método toString() para mostrar la información deseada al imprimir un objeto. Vamos a crear otro objeto de esta clase utilizando el constructor para observar y reforzar cómo el método toString() transforma el objeto:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); Person alice = new Person("Alice", 17, "female"); System.out.println(alice); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "." + System.lineSeparator(); } }

Podemos observar que el nuevo objeto alice se muestra en la consola utilizando la misma plantilla.

Conclusión

Al utilizar el método toString(), hemos simplificado en gran medida el proceso de mostrar la información de un objeto en pantalla, permitiéndonos ahorrar espacio en el método principal.

1. ¿Por qué necesitamos el método toString()?

2. ¿Qué anotación debe usarse encima del método toString()?

question mark

¿Por qué necesitamos el método toString()?

Select the correct answer

question mark

¿Qué anotación debe usarse encima del método toString()?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 8

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you show an example of how to override the toString() method in a class?

What happens if I don't override the toString() method?

Can you explain more about method overriding and inheritance?

Awesome!

Completion rate improved to 2.63

bookMétodo toString()

Desliza para mostrar el menú

Cómo imprimir fácilmente un objeto

Para mostrar todos los datos de un objeto utilizando el comando System.out.println(object); en Java, existe un método llamado toString();.

toString()

El método toString en Java es un método incorporado que pertenece a la clase Object. Se utiliza para devolver una representación en forma de cadena de un objeto. Por defecto, cuando llamamos a toString en un objeto, devuelve una cadena que contiene el nombre de la clase seguido del hashcode del objeto. Veamos el ejemplo:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } }

HashCode

Un hashcode, en términos simples, es un identificador único para un objeto que se almacena en memoria. También podemos ver el hash code de un objeto llamando al método hashCode() sobre él, por ejemplo:

Main.java

Main.java

copy
123456789101112131415161718192021
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); int code = bob.hashCode(); System.out.println(code); } }

En este caso, surge la pregunta: ¿cómo podemos obtener algo más específico en lugar del código hash de un objeto? Para estos casos, podemos sobrescribir el método toString().

Herencia y sobrescritura de métodos son temas extensos que estudiaremos en un curso aparte. Por ahora, utilizaremos la sobrescritura de métodos solo para el método toString().

Cómo usar toString()

Para sobrescribir un método, necesitamos utilizar la siguiente sintaxis:

Main.java

Main.java

copy
1234
@Override public String toString() { // block of code }

Utilizamos la anotación @Override antes de este método. Con esta anotación, el compilador reconoce que estamos sobrescribiendo este método. A continuación, especificamos la sintaxis public String toString(), indicando exactamente qué método estamos sobrescribiendo.

En el cuerpo de este método, definiremos cómo debe representarse nuestro objeto como una cadena. Vamos a sobrescribir el método para la clase Person:

Person.java

Person.java

copy
12345678910111213141516171819
class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

El comando System.lineSeparator() se utiliza para crear una nueva línea. Hemos definido cómo debe mostrarse nuestro objeto concatenando cadenas con sus valores. Por lo tanto, cuando intentemos imprimir un objeto de la clase Person, veremos información detallada sobre cada campo. Mostremos un objeto utilizando el método main y veamos cómo se visualiza:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

Hemos obtenido información sobre la clase a la que pertenece el objeto bob y detalles sobre todos sus campos. De este modo, podemos sobrescribir y definir el método toString() para mostrar la información deseada al imprimir un objeto. Vamos a crear otro objeto de esta clase utilizando el constructor para observar y reforzar cómo el método toString() transforma el objeto:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); Person alice = new Person("Alice", 17, "female"); System.out.println(alice); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "." + System.lineSeparator(); } }

Podemos observar que el nuevo objeto alice se muestra en la consola utilizando la misma plantilla.

Conclusión

Al utilizar el método toString(), hemos simplificado en gran medida el proceso de mostrar la información de un objeto en pantalla, permitiéndonos ahorrar espacio en el método principal.

1. ¿Por qué necesitamos el método toString()?

2. ¿Qué anotación debe usarse encima del método toString()?

question mark

¿Por qué necesitamos el método toString()?

Select the correct answer

question mark

¿Qué anotación debe usarse encima del método toString()?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 8
some-alt