Junior
Чӣ гуна татбиқ кардан ва истифода бурдани синфҳои маълумот дар Kotlin?
sobes.tech AI
Ҷавоб аз AI
Маълумотлар синфлари маълумотларни сақлаш учун ишлатилади. Тартибловчи улар учун equals(), hashCode(), toString(), copy() ва componentN() функциялари каби фойдали методларни автоматик равишда яратади.
Ижро: data префикси билан синфни эълон қилиш.
data class User(val name: String, val age: Int)
Фойдаланиш:
Намуна яратиш:
val user = User("Alice", 30)
Хусусиятларга кириш:
val name = user.name // Alice
val age = user.age // 30
Яратилган методлардан фойдаланиш:
println(user.toString()) // User(name=Alice, age=30)
бошқаUser = User("Alice", 30)
println(user == anotherUser) // true (equals() автоматик яратилган)
ёшиUser = user.copy(age = 31) // User(name=Alice, age=31)
фойдаланувчиНоми, фойдаланувчиЁши = user // Деструктуризация
println("Номи: $фойдаланувчиНоми, Ёши: $фойдаланувчиЁши") // Номи: Alice, Ёши: 30
Хусусиятлар:
- Барча асосий конструктор параметрлари
valёкиvarбўлиши керак. - Маълумот синфлари
abstract,open,sealedёкиinnerбўлмайди. - Синф танағидаги хусусиятлар методлар (
equals(),hashCode(),copy(),componentN()) яратилишида қатнашмайди.
data class Person(val name: String) {
var height: Int = 0 // `equals()`, `hashCode()`, `copy()`, `componentN()`га қатнашмайди
}
val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true