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.

Every class em Java herda da class Object, que fornece vários method úteis. Um dos mais comumente substituídos é toString(), que retorna uma representação textual de um object.

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

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 toString() method é chamado automatically quando você imprime um object 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 object 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 itens usando implementações personalizadas de toString(). Você criará uma Product class que substitui o toString() method padrão para fornecer uma representação clara e legível de cada produto.

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

  • Product.java: Create uma class que represente um item do inventário. Cada Product tem three private fields: name (String), price (double) e quantity (int). Inclua um constructor que initializes os three fields. Substitua o toString() method para retornar uma string formatada neste formato exato: Product[name=X, price=Y, quantity=Z], em que X, Y e Z são os actual values dos fields. O price deve ser exibido como um número simples (não é necessário nenhum format especial).
  • Main.java: Dê vida à sua class Product criando e exibindo produtos. Você receberá three inputs: um nome de produto (String), um price (double) e uma quantity (int). Crie um Product com esses values e, em seguida, simplesmente Print o product object directly usando System.out.println(). Graças ao seu toString() method substituído, isso exibirá automatically as informações formatadas do product em vez da saída padrão enigmática!

Você receberá three inputs: o nome do product, o price (double) e a quantity (int).

Observe como imprimir o object diretamente chama seu toString() method automatically. É isso que torna a depuração e o registro 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