В этой главе мы узнаем о различных модификаторах, доступных на языке котлин. Модификатор доступа используется для ограничения использования переменных, методов и классов, используемых в приложении. Как и другой язык программирования ООП, этот модификатор применим в нескольких местах, таких как заголовок класса или объявление метода. В Котлине есть четыре модификатора доступа.
Частный
Классы, методы и пакеты могут быть объявлены с частным модификатором. Как только что-либо объявлено как частное, оно будет доступно в его непосредственной области видимости. Например, личный пакет может быть доступен в этом конкретном файле. Закрытый класс или интерфейс могут быть доступны только его элементам данных и т. Д.
private class privateExample { private val i = 1 private val doSomething() { } }
В приведенном выше примере класс «privateExample» и переменная i могут быть доступны только в одном и том же файле Kotlin, где он упоминается, поскольку все они объявлены как private в блоке объявлений.
защищенный
Защищенный — это еще один модификатор доступа для Kotlin, который в настоящее время недоступен для объявления верхнего уровня, так как ни один пакет не может быть защищен. Защищенный класс или интерфейс виден только его подклассу.
class A() { protected val i = 1 } class B : A() { fun getValue() : Int { return i } }
В приведенном выше примере переменная «i» объявлена как защищенная, следовательно, она видна только своему подклассу.
внутренний
Internal — это недавно добавленный модификатор, представленный в Kotlin. Если что-либо помечено как внутреннее, то это конкретное поле будет во внутреннем поле. Внутренний пакет виден только внутри модуля, под которым он реализован. Внутренний интерфейс класса виден только другому классу, присутствующему в том же пакете или модуле. В следующем примере мы увидим, как реализовать внутренний метод.
class internalExample { internal val i = 1 internal fun doSomething() { } }
В приведенном выше примере метод с именем «doSomething» и переменная упоминаются как внутренние, следовательно, эти два поля могут быть доступны только внутри пакета, в котором он объявлен.
общественного
Открытый модификатор доступен из любой точки рабочего пространства проекта. Если модификатор доступа не указан, то по умолчанию он будет в публичной области видимости. Во всех наших предыдущих примерах мы не упоминали ни одного модификатора, следовательно, все они находятся в публичной области видимости. Ниже приведен пример, позволяющий понять, как объявлять открытую переменную или метод.
class publicExample { val i = 1 fun doSomething() { } }
В приведенном выше примере мы не упомянули ни одного модификатора, поэтому все эти методы и переменные по умолчанию общедоступны.