Sobes.tech
Intern

Šta radi metoda toString()?

sobes.tech АИ

Одговор од АИ

Metod toString() pruža tekstualni prikaz objekta. Obično se koristi za otklanjanje grešaka ili logovanje, kako bi se dobile informacije o stanju objekta u lako čitljivom formatu.

U većini programskih jezika, osnovne klase imaju standardnu implementaciju toString(), ali se preporučuje da se ona prepiše u korisničkim klasama radi pružanja smislenijih informacija.

Primer prepisivanja u Javi:

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

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

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

    // Main metoda za primer
    public static void main(String[] args) {
        User user = new User("Alice", 30);
        System.out.println(user); // Ispisuje string dobijen iz toString
    }
}

Primer prepisivanja u Pythonu:

# Klasa User
class User:
    # Konstruktor
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # Prepisivanje metode __str__ (analog toString u Pythonu)
    def __str__(self):
        return f"User{{name='{self.name}', age={self.age}}}"

    # Prepisivanje metode __repr__ (predstavljenje za programera)
    def __repr__(self):
        return f"User(name='{self.name}', age={self.age})"

# Primer korišćenja
user = User("Bob", 25)
print(user) # Ispisuje string iz __str__
print(repr(user)) # Ispisuje string iz __repr__

U JavaScript-u:

// Klasa User
class User {
    // Konstruktor
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

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

// Primer korišćenja
const user = new User("Charlie", 35);
console.log(user.toString()); // Poziva eksplicitno toString
console.log(user); // U browser konzoli može biti automatski pozvan

Osnovna svrha toString():

  • Otklanjanje grešaka: Omogućava brzo uvid u sadržaj objekta.
  • Logovanje: Olakšava zapisivanje informacija o objektima u log fajlove.
  • Pretvaranje u niz: Koristi se kada je potrebna tekstualna reprezentacija objekta (npr. pri konkatenaciji sa stringom).