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).