Menu
Coddy logo textTech

Método toString()

Parte de la sección Programación Orientada a Objetos del Journey de Java de Coddy. Lección 41 de 87.

Cada clase en Java hereda de la clase Object, que proporciona varios métodos útiles. Uno de los que se sobrescriben con más frecuencia es toString(), que devuelve una representación de cadena de un objeto.

De forma predeterminada, toString() devuelve el nombre de la clase seguido del código hash del objeto, lo cual no resulta muy útil:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Person p = new Person("Alice", 25);
System.out.println(p);  // Person@15db9742

Al sobrescribir toString(), puedes proporcionar una salida significativa que describa el estado del objeto:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Person[name=" + name + ", age=" + age + "]";
    }
}

Person p = new Person("Alice", 25);
System.out.println(p);  // Person[name=Alice, age=25]

El método toString() se llama automáticamente cuando imprimes un objeto o lo concatenas con una cadena. Esto facilita mucho la depuración, ya que puedes ver rápidamente el contenido de un objeto sin escribir código adicional.

challenge icon

Desafío

Fácil

Construyamos un sistema de inventario de productos que muestre información significativa sobre los artículos mediante implementaciones personalizadas de toString(). Crearás una clase Product que sobrescriba el método toString() predeterminado para proporcionar una representación clara y legible de cada producto.

Organizarás tu código en dos archivos:

  • Product.java: Crea una clase que represente un artículo del inventario. Cada Product tiene tres campos privados: name (String), price (double) y quantity (int). Incluye un constructor que inicialice los tres campos. Sobrescribe el método toString() para que devuelva una cadena con formato exactamente así: Product[name=X, price=Y, quantity=Z], donde X, Y y Z son los valores reales de los campos. El precio debe mostrarse como un número simple (no se necesita ningún formato especial).
  • Main.java: Da vida a tu clase Product creando y mostrando productos. Recibirás tres entradas: un nombre de producto (String), un precio (double) y una cantidad (int). Crea un Product con estos valores y, después, imprime directamente el objeto producto mediante System.out.println(). Gracias a tu método toString() sobrescrito, esto mostrará automáticamente la información del producto con formato en lugar de la salida predeterminada críptica.

Recibirás tres entradas: el nombre del producto (String), el precio (double) y la cantidad (int).

Observa cómo imprimir directamente el objeto llama automáticamente a tu método toString(). ¡Esto es lo que facilita mucho la depuración y el registro en aplicaciones reales!

Pruébalo tú mismo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Leer entradas
        String name = scanner.nextLine();
        double price = scanner.nextDouble();
        int quantity = scanner.nextInt();
        
        // TODO: Crea un objeto Product con los valores de entrada
        
        // TODO: Imprime el objeto product directamente
        // (¡Esto llamará automáticamente a tu método toString()!)
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Java online