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 métodos mais comumente sobrescritos é toString(), que retorna uma representação em formato de string de um objeto.

Por padrão, toString() retorna o nome da classe seguido pelo código hash 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 substituir 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, pois você pode ver rapidamente o conteúdo de um objeto sem escrever código extra.

challenge icon

Desafio

Fácil

Vamos criar 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 substitui o método padrão toString() 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 represente um item do inventário. Cada Product tem três campos privados: name (String), price (double) e quantity (int). Inclua um construtor que inicialize os três campos. Substitua o método toString() para retornar uma string formatada exatamente neste formato: Product[name=X, price=Y, quantity=Z], em que X, Y e Z são os valores reais dos campos. O preço deve ser exibido como um número simples (não é necessária nenhuma formatação especial).
  • 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() substituído, 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 automaticamente o seu método toString(). É isso que torna a depuração e o registro de informações muito mais fáceis em aplicações reais!

Experimente você mesmo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Ler entradas
        String name = scanner.nextLine();
        double price = scanner.nextDouble();
        int quantity = scanner.nextInt();
        
        // TODO: Crie um objeto Product com os valores de entrada
        
        // TODO: Imprima o objeto product diretamente
        // (Isso vai 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

Pratique por conta própria: Compilador de Java online