Junior — Middle
Kotlin-ის მონაცემთა კლასების რა მახასიათებლები და შეზღუდვები არსებობს?
sobes.tech AI
პასუხი AI-სგან
Kotlin-ის მონაცემთა კლასები (data class) განკუთვნილია მონაცემების შენახვისთვის და ავტომატურად უზრუნველყოფს სასარგებლო მეთოდებს: equals(), hashCode(), toString(), copy() და დესტრუქტურიზაციის ფუნქციებს.
მახასიათებლები და შეზღუდვები:
- კლასი უნდა ჰქონდეს მინიმუმ ერთი პარამეტრი კონსტრუქტორში.
- ყველა კონსტრუქტორის პარამეტრი, რომლებიც გამოაცხადა
primary constructor-ში, ავტომატურად ხდება თვისებები. - კლასი არ შეიძლება იყოს აბსტრაქტული, ღია, შიდა ან მემკვიდრეობით სხვა კლასებიდან (მაგრამ შეიძლება იმუშაოს ინტერფეისებთან).
- კომპილატორი ქმნის მეთოდებს მხოლოდ კონსტრუქტორში გამოცხადებულ თვისებებზე, არა დამატებით თვისებებზე.
- შესაძლებელია გენერირებული მეთოდების გადაწერა, თუ გსურთ მათი ქცევის შეცვლა.
მაგალითი:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // შექმნის ახალი ობიექტი შეცვლილი ასაკით
println(user1) // User(name=Alice, age=30)