Sobes.tech
Intern

Co dělá metoda toString()?

sobes.tech AI

Odpověď od AI

Metoda toString() poskytuje řetězcové zobrazení objektu. Obvykle se používá pro ladění nebo logování, aby bylo možné získat informace o stavu objektu v čitelném formátu.

Ve většině programovacích jazyků mají základní třídy standardní implementaci toString(), ale doporučuje se ji přepsat ve vlastních třídách, aby poskytovala smysluplnější informace.

Příklad přepsání v Javě:

// Třída User
class User {
    private String name;
    private int age;

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

    // Přepsání metody toString
    @Override
    public String toString() {
        return "User{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }

    // Příklad použití v metodě main
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user); // Vypíše řetězec z toString()
    }
}

Příklad přepsání v Pythonu:

# Třída User
class User:
    # Konstruktor
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Přepsání metody __str__ (ekvivalent k toString v Pythonu)
    def __str__(self):
        return f"User{{name='{self.name}', age={self.age}}}"

    # Přepsání metody __repr__ (reprezentace pro vývojáře)
    def __repr__(self):
        return f"User(name='{self.name}', age={self.age})"

# Příklad použití
user = User("Bob", 25)
print(user) # Vypíše řetězec z __str__()
print(repr(user)) # Vypíše řetězec z __repr__()

V JavaScriptu:

// Třída User
class User {
    // Konstruktor
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // Přepsání metody toString()
    toString() {
        return `User{name='${this.name}', age=${this.age}}`;
    }
}

// Příklad použití
const user = new User("Charlie", 35);
console.log(user.toString()); // Explicitní volání toString()
console.log(user); // Může být voláno automaticky

Hlavní účel toString():

  • Ladění: Umožňuje rychlý pohled na obsah objektu.
  • Logování: Usnadňuje zaznamenávání informací o objektech do log souborů.
  • Konverze na řetězec: Používá se, když je potřeba řetězcová reprezentace objektu (například při spojování s jiným řetězcem).