Bu makalede, örnekler yardımıyla iç içe ve iç sınıflarla çalışmayı öğreneceksiniz.
Kotlin İç İçe Sınıfı
Java gibi, Kotlin de iç içe sınıf olarak bilinen başka bir sınıf içinde bir sınıf tanımlamanıza izin verir.
sınıf Dış (… Sınıf İç içe (…))
İç içe sınıf, dış sınıfının bir üyesi olduğundan, sınıfa ve üyelerine .
erişmek için gösterimi kullanabilirsiniz Nested
.
Örnek: Kotlin İç İçe Sınıfı
class Outer ( val a = "Outside Nested class." class Nested ( val b = "Inside Nested class." fun callMe() = "Function call from inside Nested class." ) ) fun main(args: Array) ( // accessing member of Nested class println(Outer.Nested().b) // creating object of Nested class val nested = Outer.Nested() println(nested.callMe()) )
Programı çalıştırdığınızda, çıktı:
İç içe sınıf içinde. Yuvalanmış sınıfın içinden işlev çağrısı.
Java Kullanıcıları için
Kotlin'deki yuvalanmış sınıf, Java'daki statik yuvalanmış sınıfa benzer.
Java'da, başka bir sınıfın içinde bir sınıf bildirdiğinizde, bu varsayılan olarak bir iç sınıf haline gelir. Ancak Kotlin'de, daha sonra tartışacağımız bir iç sınıf oluşturmak için iç değiştiriciyi kullanmanız gerekir.
Kotlin İç Sınıfı
Kotlin'deki iç içe geçmiş sınıfların dış sınıf örneğine erişimi yoktur. Örneğin,
class Outer ( val foo = "Outside Nested class." class Nested ( // Error! cannot access member of outer class. fun callMe() = foo ) ) fun main(args: Array) ( val outer = Outer() println(outer.Nested().callMe()) )
Yukarıdaki kod, Outer sınıfının foo özelliğine Nested sınıfın içinden erişmeye çalıştığımız için derlenmeyecek.
Bu sorunu çözmek için, bir iç sınıf oluşturmak için yuvalanmış sınıfı iç ile işaretlemeniz gerekir. İç sınıflar bir dış sınıfa bir başvuru taşır ve dış sınıf üyelerine erişebilir.
Örnek: Kotlin Inner Class
class Outer ( val a = "Outside Nested class." inner class Inner ( fun callMe() = a ) ) fun main(args: Array) ( val outer = Outer() println("Using outer object: $(outer.Inner().callMe())") val inner = Outer().Inner() println("Using inner object: $(inner.callMe())") )
Programı çalıştırdığınızda, çıktı:
Dış nesneyi kullanma: Yuvalanmış sınıfın dışında. İç nesneyi kullanma: Yuvalanmış sınıfın dışında.
Önerilen Kaynaklar: Anonim İç Sınıf