Sobes.tech
Intern

O que faz o método toString()?

sobes.tech IA

Resposta da IA

O método toString() fornece uma representação em string do objeto. Geralmente é usado para depuração ou registo, para obter informações sobre o estado do objeto num formato legível.

Na maioria das linguagens de programação, as classes base têm uma implementação padrão de toString(), mas recomenda-se sobrescrevê-lo em classes personalizadas para fornecer informações mais significativas.

Exemplo de sobrescrita em Java:

// Classe User
class User {
    private String name;
    private int age;

    // Construtor
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Sobrescrever método toString
    @Override
    public String toString() {
        return "User{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }

    // Método main para exemplo
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user); // Mostra a string obtida de toString
    }
}

Exemplo de sobrescrita em Python:

# Classe User
class User:
    # Construtor
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Sobrescrever método __str__ (equivalente a toString em Python)
    def __str__(self):
        return f"User{{name='{self.name}', age={self.age}}}"

    # Sobrescrever método __repr__ (representação para desenvolvedores)
    def __repr__(self):
        return f"User(name='{self.name}', age={self.age})"

# Exemplo de uso
user = User("Bob", 25)
print(user) # Mostra a string de __str__
print(repr(user)) # Mostra a string de __repr__

Em JavaScript:

// Classe User
class User {
    // Construtor
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // Sobrescrever método toString
    toString() {
        return `User{name='${this.name}', age=${this.age}}`;
    }
}

// Exemplo de uso
const user = new User("Charlie", 35);
console.log(user.toString()); // Chama explicitamente toString
console.log(user); // Pode ser chamado automaticamente

Objetivo principal de toString():

  • Depuração: Permite ver rapidamente o conteúdo do objeto.
  • Registo: Facilita a gravação de informações sobre objetos em ficheiros de registo.
  • Conversão para string: Usado quando o objeto precisa de uma representação em string (por exemplo, na concatenação com uma string).