Kotlin'de iç içe ve iç sınıflar
Kotlin, Android uygulamaları ve sunucu tarafı uygulamaları geliştirmek için kullanılan modern bir programlama dilidir. Kotlin'in ilginç özelliklerinden biri iç içe ve iç sınıfları desteklemesidir. Bu yazıda Kotlin'deki iç içe ve iç sınıflara daha yakından bakacağız ve kodunuzun organizasyonunu ve yapısını iyileştirmek için nasıl kullanılabileceğini göreceğiz.
İç İçe Sınıflar
Yuvalanmış bir sınıf, başka bir sınıfın içinde tanımlanan bir sınıftır. Kotlin'de, iç içe geçmiş bir sınıfı, anahtar kelimeyi kullanarak dış sınıfın içinde bildirerek tanımlayabilirsiniz class
. İşte bir örnek:
class Outer {
class Nested {
fun `sayHello`() {
println("Hello from Nested!")
}
}
}
Sözdizimini kullanarak iç içe geçmiş bir sınıfın bir örneğini oluşturabilirsiniz:
val nested = Outer.Nested()
nested.`sayHello`() // Output: Hello from Nested!
Yuvalanmış sınıfları kullanmanın faydalarından biri, ilgili işlevleri birlikte gruplandırmak için kullanılabilmesidir. Örneğin, bir veritabanı tablosunu temsil eden bir sınıfınız ve bu tablodaki bir sorguyu temsil eden iç içe geçmiş bir sınıfınız olabilir. Sorgu sınıfını tablo sınıfının içine yerleştirerek ilgili kodu bir arada tutabilir ve kodunuzu daha düzenli hale getirebilirsiniz.
İç Sınıflar
Bir iç sınıf, dış sınıfının üyelerine erişimi olan iç içe geçmiş bir sınıftır. inner
Kotlin'de, anahtar kelimeden önce anahtar kelimeyi kullanarak bir iç sınıf tanımlayabilirsiniz class
. İşte bir örnek:
class Outer {
private val name: String = "Outer"
inner class Inner {
fun `sayHello`() {
println("Hello from $name.Inner!")
}
}
}
Sözdizimini kullanarak bir iç sınıf örneği oluşturabilirsiniz:
val outer = Outer()
val inner = outer.Inner()
inner.`sayHello`() // Output: Hello from Outer.Inner!
İç sınıfları kullanmanın faydalarından biri, belirli durumlarda yararlı olabilen dış sınıflarının üyelerine erişebilmeleridir. Örneğin, bir öğe listesini temsil eden bir sınıfınız ve bu liste üzerinde bir yineleyiciyi temsil eden bir iç sınıfınız olabilir. Yineleyiciyi bir iç sınıf yaparak, liste sınıfının boyutu ve öğeleri gibi üyelerine erişebilir.
Yuvalanmış ve iç sınıflar arasındaki farklar
Bariz farklardan bazıları aşağıdaki gibidir:
- Dış Sınıf Üyelerine Erişim: Yuvalanmış sınıflar, dış sınıflarının üyelerine erişemezken, iç sınıflar erişebilir. İç sınıfların, özelliklerine ve işlevlerine erişmelerine izin veren dış sınıf örneklerine bir referansı vardır.
- Kapsam: Yuvalanmış bir sınıfın kapsamı çevreleyen sınıfla sınırlıdır, bir iç sınıfın kapsamı ise çevreleyen sınıfın örneğiyle sınırlıdır. Bu, bir iç sınıfın, dış sınıf örneğinin özel üyelerine erişebileceği anlamına gelir.
- Başlatma: Yuvalanmış bir sınıfın bir örneği, dış sınıfının bir örneği olmadan oluşturulabilirken, bir iç sınıfın bir örneği, dış sınıfının bir örneği ile oluşturulmalıdır.
- Kullanım: Yuvalanmış sınıflar tipik olarak ilgili işlevleri bir arada gruplandırmak için kullanılırken, iç sınıflar iç içe sınıfın içinden dış sınıfın üyelerine erişmeniz gerektiğinde kullanılır.
- Sözdizimi: İç içe geçmiş bir sınıf bildirmenin sözdizimi, onu anahtar kelimeyi kullanarak dış sınıf içinde bildirmektir
class
.inner
Bir iç sınıf bildirmek için sözdizimi, anahtar kelimeden önce anahtar kelimeyi kullanmaktırclass
. - Adlandırma: İç içe sınıflar, dış sınıfın adı ve ardından bir nokta ve iç içe sınıfın adıyla adlandırılır. İç sınıflar, dış sınıfın adıyla, ardından bir nokta ve iç sınıfın adıyla adlandırılır ve dış sınıfın bir örneğiyle ilişkilendirilir.
Çözüm
İç içe ve iç sınıflar, kodunuzu düzenlemenize ve yapılandırmanıza yardımcı olabilecek güçlü bir Kotlin özelliğidir. İlgili işlevleri bir arada gruplayarak, kodunuzu daha düzenli ve bakımı kolay hale getirebilirsiniz. Ve iç sınıfları kullanarak, bu sınıflara, belirli durumlarda yararlı olabilecek dış sınıflarının üyelerine erişim izni verebilirsiniz. Yani bir dahaki sefere sen