Sobes.tech
Intern

Čo robí metóda toString()?

sobes.tech AI

Odpoveď od AI

Metóda toString() poskytuje textové zobrazenie objektu. Zvyčajne sa používa na ladenie alebo zaznamenávanie, aby ste získali informácie o stave objektu v ľahko čitateľnom formáte.

Vo väčšine programovacích jazykov majú základné triedy štandardnú implementáciu toString(), ale odporúča sa ju prepísať v používateľských triedach, aby poskytovala zmysluplnejšie informácie.

Príklad prepísania v Jave:

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

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

    // Prepisovanie metódy toString
    @Override
    public String toString() {
        return "User{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }

    // Metóda main pre príklad
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user); // Vypíše reťazec získaný z toString
    }
}

Príklad prepísania v Pythone:

# Trieda User
class User:
    # Konštruktor
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Prepisovanie metódy __str__ (analóg toString v Pythone)
    def __str__(self):
        return f"User{{name='{self.name}', age={self.age}}}"

    # Prepisovanie metódy __repr__ (predstavenie pre vývojára)
    def __repr__(self):
        return f"User(name='{self.name}', age={self.age})"

# Príklad použitia
user = User("Bob", 25)
print(user) # Vypíše reťazec z __str__
print(repr(user)) # Vypíše reťazec z __repr__

V JavaScripte:

// Trieda User
class User {
    // Konštruktor
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // Prepisovanie metódy toString
    toString() {
        return `User{name='${this.name}', age=${this.age}}`;
    }
}

// Príklad použitia
const user = new User("Charlie", 35);
console.log(user.toString()); // Volá explicitne toString
console.log(user); // V prehliadačovej konzole môže byť automaticky volané

Hlavný účel toString():

  • Ladenie: Umožňuje rýchly pohľad na obsah objektu.
  • Záznam do logov: Uľahčuje zapisovanie informácií o objektoch do log súborov.
  • Prevod na reťazec: Používa sa, keď je potrebný reťazcový zápis objektu (napríklad pri konkatenácii s reťazcom).