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 Avanzado
course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
Método toString()

¿Cómo imprimir un objeto de manera más sencilla?

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 está almacenado 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 ese caso, surge la pregunta: ¿cómo podemos obtener algo más específico en lugar del hash code de un objeto? Para tales 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 aparecer nuestro objeto concatenando cadenas con sus valores. Por lo tanto, cuando intentamos imprimir un objeto de la clase Person, veremos información detallada sobre cada campo. Mostremos un objeto utilizando el método main y observemos 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. Creemos otro objeto de esta clase utilizando el constructor para ver 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 considerablemente 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 se debe usar encima del método toString()?

question mark

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

Select the correct answer

question mark

¿Qué anotación se debe usar 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

course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
Método toString()

¿Cómo imprimir un objeto de manera más sencilla?

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 está almacenado 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 ese caso, surge la pregunta: ¿cómo podemos obtener algo más específico en lugar del hash code de un objeto? Para tales 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 aparecer nuestro objeto concatenando cadenas con sus valores. Por lo tanto, cuando intentamos imprimir un objeto de la clase Person, veremos información detallada sobre cada campo. Mostremos un objeto utilizando el método main y observemos 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. Creemos otro objeto de esta clase utilizando el constructor para ver 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 considerablemente 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 se debe usar encima del método toString()?

question mark

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

Select the correct answer

question mark

¿Qué anotación se debe usar 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