Data, Enum ve Sealed Class Nedir?
Data Class Nedir?
“Data class”, Kotlin programlama dilinde bulunan bir özelliktir ve bir sınıfın, veri taşımak için kullanılacak özellikleri tanımlamasını kolaylaştırır.
Bir “data class” tanımlanırken, veri taşıyacak özellikler sınıfın parametre listesi olarak belirtilir ve sınıfın içinde getter ve setter metodları gibi bazı işlevleri de içerir. Bu özellikler, veri sınıfının içinde kullanılmaya hazır hale gelir ve verileri taşımak, karşılaştırmak, kopyalamak ve yazdırmak gibi işlemleri kolaylaştırır.
Ayrıca, Kotlin’in “data class” özelliği, “equals()”, “hashCode()”, “toString()” gibi yöntemleri otomatik olarak oluşturabilir ve özelleştirebilir. Bu sayede, sınıfların bu yöntemlerini tekrar tekrar yazmak yerine, bu işlemleri otomatik olarak yapabilirsiniz.
Özetle, Kotlin’deki “data class” özelliği, veri taşıyan sınıfların tanımlanmasını ve bu sınıflarla ilgili işlemlerin yapılmasını kolaylaştırır.
Kotlin dilinde bir data class oluşturabilmek için bazı şartlar bulunmaktadır:
- Data class’lar en az bir parametre bulundurmalıdır. Yani primary constructor içinde en az bir parametre bulunmak zorundadır.
- Parametrelerin val ya da var olarak tanımlanması gereklidir.
- Data class’lar abstract, sealed, open veya inner olamaz.
Kotlin’de data class oluşturabilmek için class sözcüğünden önce data anahtar sözcüğü kullanılır.
data class Book(
val id: Int,
val name: String,
val author: String,
val page: Int
)
Enum Class Nedir?
“Enum class” (sabit sınıf), Kotlin programlama dilinde bir veri tipidir. Bu veri tipi, sabit değerlerin belirli bir kümesini temsil etmek için kullanılır. Örneğin, haftanın günlerini veya bir renk paletindeki renkleri temsil etmek için enum sınıfları kullanılabilir.
Bir enum sınıfı tanımlandığında, bu sınıfın içindeki sabit değerler ayrı ayrı belirtilir ve virgülle ayrılır. Ayrıca, bu sabit değerlerin her birine bir isim ve bir değer atanabilir.
Enum sınıflarında, sabit değerlerin dışında özel işlevler de tanımlanabilir. Bu işlevler, enum sınıfının kendisine veya sabit değerlerine özgü olabilir. Bu özellik sayesinde, enum sınıfları, birbirine benzer ama farklı davranışlar sergileyen bir grup öğeyi temsil etmek için kullanılabilir.
Özetle, Kotlin’daki enum sınıfları, sabit değerleri bir arada gruplamak için kullanışlı bir araçtır. Bu sabit değerler, özelleştirilebilir işlevler ile birlikte kullanılabilir ve kodun okunabilirliğini ve anlaşılabilirliğini artırabilir.
enum class CardType(val color: String) {
SILVER("gray"),
GOLD("yellow"),
PLATINUM("black")
}
Sealed Class Nedir?
“Sealed class” (mühürlü sınıf), Kotlin programlama dilinde bir sınıf türüdür. Sealed class, belirli alt sınıfların bu ana sınıf içinde tanımlanmasına izin veren, sınırlı bir sınıf hiyerarşisi oluşturmak için kullanılır. Bu alt sınıflar, sealed class’ın içinde özel olarak tanımlanmalıdır.
Sealed class’ın en önemli özelliklerinden biri, “when” ifadesinde kullanılabilecek bir ifade türü olmasıdır. “when” ifadesi, sealed class alt sınıflarının durumlarına göre farklı işlemler gerçekleştirmek için kullanılabilir. Bu sayede, sealed class’ın alt sınıfları, belirli bir seçenek kümesiyle sınırlandırılarak hata riskleri azaltılabilir.
Sealed class’ın alt sınıfları, sealed class’ın kendisi tarafından otomatik olarak özelleştirilebilir ve bu sayede alt sınıflar, yalnızca bu ana sınıfın belirli bir alt kümesini temsil edecek şekilde kullanılabilir. Bu özellik, kodun daha güvenli ve okunaklı hale gelmesine yardımcı olur.
Özetle, Kotlin’daki sealed class, belirli bir alt sınıf kümesini sınırlamak ve bu alt sınıflara özgü işlemler yapmak için kullanışlı bir araçtır. Bu özellik, kodun güvenliği, okunabilirliği ve bakımı açısından önemlidir.
sealed class UserType
data class Admin(val userInfo: UserInfo) : UserType()
data class User(val userInfo: UserInfo) : UserType()
data class SuperAdmin(val userInfo: UserInfo) : UserType()
object None : UserType()
Originally published at Ferhat ÖZÇELİK.