Middle
Co jsou 'výrazy objektů' a 'deklarace objektů' v Kotlinu?
sobes.tech AI
Odpověď od AI
Objektové výrazy (nepojmenované objekty) se používají k vytváření objektů anonymních tříd. Jsou užitečné pro implementaci jednorázových rozhraní nebo dědění od tříd v jednom výřezu. Syntaxe object : <typ(y)>.
Deklarace objektů (deklarace objektů) vytvářejí singleton. Je to třída s jediným výskytem, který je globálně dostupný podle jejího jména. Syntaxe object <jméno>.
Porovnávací tabulka:
| Vlastnost | Výrazy objektů | Deklarace objektů |
|---|---|---|
| Účel | Vytvoření anonymního objektu | Vytvoření singletonu |
| Použití | Lokální, uvnitř výrazů nebo funkcí | Veřejné, podle jména objektu |
| Vytváření instancí | Při každém použití výrazu | Jeden instance při prvním přístupu |
| Názvosloví | Anonymní | Názvaný |
| Použití | Jednorázoví posluchači událostí, adaptéry | Utility, konfigurace, úložiště stavu |
Příklad výrazu objektu:
// Vytvoření posluchače kliknutí "za běhu"
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
// Akce při kliknutí
}
})
Příklad deklarace objektu:
// Deklarace singletonu pro logování
object Logger {
fun log(message: String) {
println(message)
}
}
// Použití singletonu
fun processData(data: String) {
Logger.log("Zpracování dat...")
// Zpracování dat
}