Sobes.tech
Intern

Ce face metoda toString()?

sobes.tech AI

Răspuns de la AI

Metoda toString() oferă o reprezentare a obiectului sub formă de șir de caractere. Este utilizată de obicei pentru depanare sau înregistrare, pentru a obține informații despre starea obiectului într-un format ușor de citit.

În majoritatea limbajelor de programare, clasele de bază au o implementare standard a toString(), dar se recomandă suprascrierea acesteia în clasele personalizate pentru a oferi informații mai semnificative.

Exemplu de suprascriere în Java:

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

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

    // Suprascrierea metodei toString
    @Override
    public String toString() {
        return "User{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }

    // Metoda main pentru exemplu
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user); // Afișează șirul obținut din toString
    }
}

Exemplu de suprascriere în Python:

# Clasa User
class User:
    # Constructor
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Suprascrierea metodei __str__ (echivalent cu toString în Python)
    def __str__(self):
        return f"User{{name='{self.name}', age={self.age}}}"

    # Suprascrierea metodei __repr__ (reprezentarea pentru dezvoltatori)
    def __repr__(self):
        return f"User(name='{self.name}', age={self.age})"

# Exemplu de utilizare
user = User("Bob", 25)
print(user) # Afișează șirul din __str__
print(repr(user)) # Afișează șirul din __repr__

În JavaScript:

// Clasa User
class User {
    // Constructor
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // Suprascrierea metodei toString()
    toString() {
        return `User{name='${this.name}', age=${this.age}}`;
    }
}

// Exemplu de utilizare
const user = new User("Charlie", 35);
console.log(user.toString()); // Apelează explicit toString
console.log(user); // Poate fi apelat automat

Scopul principal al toString():

  • Debug: Permite vizualizarea rapidă a conținutului obiectului.
  • Logging: Facilitează înregistrarea informațiilor despre obiecte în fișiere de log.
  • Conversie în șir: Este utilizat atunci când obiectul are nevoie de o reprezentare în șir (de exemplu, la concatenarea cu un șir).