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