В Kotlin вложенный класс — это класс, определенный внутри другого класса. Это позволяет логически группировать классы и обеспечивает лучшую инкапсуляцию. Вот несколько методов, которые вы можете использовать с вложенными классами в Kotlin, а также примеры кода:
-
Доступ к вложенным членам класса из внешнего класса:
class Outer { private val outerProperty = "Outer Property" class Nested { fun accessOuterProperty(outer: Outer) { println(outer.outerProperty) } } } fun main() { val outer = Outer() val nested = Outer.Nested() nested.accessOuterProperty(outer) // Output: Outer Property }
-
Создание экземпляра вложенного класса:
class Outer { class Nested { fun printMessage() { println("Hello from nested class!") } } } fun main() { val nested = Outer.Nested() nested.printMessage() // Output: Hello from nested class! }
-
Доступ к вложенным членам класса извне внешнего класса:
class Outer { private val outerProperty = "Outer Property" class Nested { fun accessOuterProperty(outer: Outer) { println(outer.outerProperty) } } } fun main() { val outer = Outer() val nested = Outer.Nested() nested.accessOuterProperty(outer) // Output: Outer Property }
-
Использование вложенного класса в качестве приемника функции расширения:
class Outer { class Nested { fun printMessage() { println("Hello from nested class!") } } } fun Outer.Nested.sayHello() { println("Hello from extension function!") } fun main() { val nested = Outer.Nested() nested.sayHello() // Output: Hello from extension function! }