Menu
Coddy logo textTech

Método toString()

Parte da seção Programação Orientada a Objetos do Journey de Java da Coddy — lição 41 de 87.

Toda classe em Java herda da classe Object, que fornece vários métodos úteis. Um dos mais comumente sobrescritos é o toString(), que retorna uma representação em string de um objeto.

Por padrão, toString() retorna o nome da classe seguido pelo hash code do objeto, o que não é muito ú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

Ao sobrescrever toString(), você pode fornecer uma saída significativa que descreve o estado do 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]

O método toString() é chamado automaticamente quando você imprime um objeto ou o concatena com uma string. Isso torna a depuração muito mais fácil, já que você pode ver rapidamente o conteúdo de um objeto sem escrever código extra.

challenge icon

Desafio

Fácil

Vamos construir um sistema de inventário de produtos que exibe informações significativas sobre os itens usando implementações personalizadas de toString(). Você criará uma classe Product que sobrescreve o método toString() padrão para fornecer uma representação clara e legível de cada produto.

Você organizará seu código em dois arquivos:

  • Product.java: Crie uma classe que representa um item do inventário. Cada Product possui três campos privados: name (String), price (double) e quantity (int). Inclua um construtor que inicialize todos os três campos. Sobrescreva o método toString() para retornar uma string formatada exatamente neste formato: Product[name=X, price=Y, quantity=Z] onde X, Y e Z são os valores reais dos campos. O preço deve ser exibido como um número simples (nenhuma formatação especial é necessária).
  • Main.java: Dê vida à sua classe Product criando e exibindo produtos. Você receberá três entradas: um nome de produto (String), um preço (double) e uma quantidade (int). Crie um Product com esses valores e, em seguida, simplesmente imprima o objeto do produto diretamente usando System.out.println(). Graças ao seu método toString() sobrescrito, isso exibirá automaticamente as informações formatadas do produto em vez da saída padrão enigmática!

Você receberá três entradas: o nome do produto (String), o preço (double) e a quantidade (int).

Observe como imprimir o objeto diretamente chama seu método toString() automaticamente—é isso que torna a depuração e o registro de logs muito mais fáceis em aplicações reais!

Folha de consulta

Toda classe em Java herda da classe Object. O método toString() retorna uma representação em string de um objeto.

Por padrão, o toString() retorna o nome da classe seguido pelo hash code do objeto:

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

Sobrescreva o toString() para fornecer uma saída significativa:

@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]

O método toString() é chamado automaticamente quando você imprime um objeto ou o concatena com uma string.

Experimente você mesmo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Ler as entradas
        String name = scanner.nextLine();
        double price = scanner.nextDouble();
        int quantity = scanner.nextInt();
        
        // TODO: Criar um objeto Product com os valores de entrada
        
        // TODO: Imprimir o objeto product diretamente
        // (Isso chamará automaticamente o seu método toString()!)
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos