Sobes.tech
Junior — Middle

Mi a különbség a data class és egy standard osztály között a programozási nyelvben?

sobes.tech MI

Válasz az MI-től

Kotlin (Android) nyelvben a data class (adat osztály) egy speciális osztály, amely adat tárolására szolgál. A fő különbség a normál osztályhoz képest, hogy a fordító automatikusan generál több hasznos metódust:

  • equals() és hashCode() az objektumok tartalom szerinti összehasonlításához,
  • toString() informatív kimenettel,
  • copy() módosított mezőkkel rendelkező másolatok készítéséhez,
  • komponensek (component1(), component2(), stb.) destrukturáláshoz.

Egy normál osztály nem rendelkezik ezekkel a metódusokkal alapértelmezés szerint, ezeket kézzel kell írni, ha szükséges.

Példa data class-ra:

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)

Így a data class kényelmes adatmodellekhez, ahol a egyszerűség és a helyes összehasonlítás fontos.