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