Sobes.tech
Junior

Veri sınıfında (data class) hangi değişkenler kullanılabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir data class içinde kullanılabilir:

  • val (yalnızca okunabilen özellik): Özellik, nesne oluşturulurken başlatılır ve sonrasında değiştirilemez. Otomatik olarak oluşturulan metodların (equals(), hashCode(), toString(), copy()) bir parçasıdır.
  • var (değiştirilebilir özellik): Özellik, nesne oluşturulduktan sonra değiştirilebilir. Ayrıca, otomatik olarak oluşturulan metodların bir parçasıdır.
  • Sınıf gövdesinde tanımlanan özellikler: Bu özellikler, data class'ın ana özelliklerinin bir parçası değildir ve standart metodların oluşturulmasında yer almaz.

Örnek:

data class User(
    val id: Int, // yalnızca okunabilir, ana özelliklerin bir parçası
    var name: String, // değiştirilebilir, ana özelliklerin bir parçası
    val creationTime: Long = System.currentTimeMillis() // yalnızca okunabilir, varsayılan değeriyle, ana özelliklerin bir parçası
) {
    val isAdmin: Boolean = false // yalnızca okunabilir, ana özelliklerin bir parçası değildir, equals/hashCode/toString'e dahil edilmez
}