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()`-ში
}