Sobes.tech
Junior — Middle

Оё метавонед тафовутҳои байни синфи оддӣ ва data class дар забони барномасозӣ шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар забонҳои барномасозӣ монанди Kotlin, синфи оддӣ ва data class фарқ мекунанд дар он ки data class барои нигоҳдории маълумот пешбинӣ шудааст ва автоматӣ методҳои муфидро тавлид мекунад.

Фарқҳои асосӣ байни data class ва синфи оддӣ:

  • Тавлиди автоматии методҳо: equals(), hashCode(), toString(), copy(), инчунин компонентҳо барои деструктур кардан.
  • Конструктор бо параметрҳо: data class бояд ҳадди ақал як параметр дар конструктори асосӣ дошта бошад.
  • Истифода: data class барои моделҳои маълумот қулай аст, ки дар он семантикаи баробарии мазмунӣ муҳим аст.

Масалан дар Kotlin:

data class User(val name: String, val age: Int)

val user1 = User("Alice", 30)
val user2 = User("Alice", 30)

println(user1 == user2) // true, муқоиса бо мазмун
println(user1) // User(name=Alice, age=30)

val user3 = user1.copy(age = 31) // эҷоди объекти нав бо синни тағирёфта

Дар синфи оддӣ, ин методҳоро бояд дастӣ иҷро кард, ки коди бештар ва эҳтимоли хатоҳоро меорад.