Sobes.tech
Junior

რისი ცვლადები შეიძლება გამოყენებულ იქნას მონაცემთა კლასში (data class)?

sobes.tech AI

პასუხი AI-სგან

Data class-შიგნით შეიძლება გამოყენებულ იქნას:

  • val (მხოლოდ წაკითხვის თვისება): თვისება ინიცირებულია ობიექტის შექმნისას და შემდგომში ვერ იცვლება. იგი შედის ავტომატურად გენერირებულ მეთოდებში (equals(), hashCode(), toString(), copy).
  • var (მოძრავი თვისება): თვისება შეიძლება შეიცვალოს ობიექტის შექმნის შემდეგ. ასევე შედის გენერირებულ მეთოდებში.
  • კლასის სხეულში გამოცხადებული თვისებები: ეს თვისებები არ არის data class-ის ძირითადი თვისებების ნაწილი და არ მონაწილეობს სტანდარტული მეთოდების გენერაციაში.

მაგალითი:

data class User(
    val id: Int, // მხოლოდ წაკითხვისთვის, ძირითადი თვისებების ნაწილი
    var name: String, // მოძრავი, ძირითადი თვისებების ნაწილი
    val creationTime: Long = System.currentTimeMillis() // მხოლოდ წაკითხვისთვის, დეფოლტ მნიშვნელობით, ძირითადი თვისებების ნაწილი
) {
    val isAdmin: Boolean = false // მხოლოდ წაკითხვისთვის, არ არის ძირითადი თვისებების ნაწილი, არ შედის `equals()`/`hashCode()`/`toString()`-ში
}