У овом чланку ћете сазнати о сва 4 модификатора видљивости у Котлину и како они функционишу у различитим сценаријима.
Модификатори видљивости су кључне речи које постављају видљивост (приступачност) класа, објеката, интерфејса, конструктора, функција, својстава и њихових постављача. (Не можете подесити модификатор видљивости гетера јер они увек имају исту видљивост као и својство.)
У Котлин класа и објеката Члан, сте сазнали о видљивости модификатора publicи privateукратко. Сазнаћете два модификатора више видљивости protectedи internal(као publicи private) детаљно.
Модификатори видљивости унутар пакета
Пакет организује скуп повезаних функција, својстава и класа, објеката и интерфејса. Препоручено читање: Котлин пакети
| Модификатор | Опис |
|---|---|
| јавно | декларације су видљиве свуда |
| приватни | видљиво унутар датотеке која садржи декларацију |
| унутрашње | видљив унутар истог модула (скуп Котлин датотека састављених заједно) |
| заштићен | није доступно за пакете (користи се за поткласе) |
Напомена: Ако модификатор видљивости није наведен, publicподразумевано је.
Узмимо пример:
// назив датотеке: хелло.кт пакет тест фун фунцтион1 () () // подразумевано јавно и видљиво свуда привате фун фунцтион2 () () // видљиво унутар хелло.кт интерне функције фун3 () () // видљиво унутар исти модул вар наме = "Фоо" // свуда видљиво гет () = поље // видљиво унутар хелло.кт (исто као и његово својство) привате сет (валуе) (// висибле инсиде хелло.кт фиелд = валуе) привате цласс цласс1 () // видљиво изнутра хелло.кт
Модификатори видљивости унутар класа и интерфејса
Ево како модификатори видљивости раде за чланове (функције, својства) декларисане унутар класе:
| Модификатор | Опис |
|---|---|
| јавно | видљив сваком клијенту који може видети класу пријављивања |
| приватни | видљиво само унутар класе |
| заштићен | видљив унутар класе и њених поткласа |
| унутрашње | видљив сваком клијенту унутар модула који може да види класу пријављивања |
Напомена: Ако замените protectedчлана у изведеној класи без навођења његове видљивости, његова видљивост ће такође бити protected.
Узмимо пример:
отворена класа Басе () (вар а = 1 // јавно по дефаулту приватно вар б = 2 // приватно према основној класи заштићено отворено вал ц = 3 // видљиво за базу и изведену класу интерни вал д = 4 // видљиво унутар истог модула заштићена је забавна класа е () () // видљива класи и изведеној класи) Изведено: Басе () (// видљиви су а, ц, д и е () основне класе // б није видљиво заменити вал ц = 9 // ц је заштићен) фун маин (аргс: Арраи) (вал басе = Басе () // басе.а и басе.д су видљиви // басе.б, басе.ц и басе .е () нису видљиви вал изведено = Изведено () // изведено.ц није видљиво)
Промена видљивости конструктора
Подразумевано је видљивост конструктора public. Међутим, можете га променити. За то је потребно изричито додати constructorкључну реч.
Конструктор је publicподразумевано у доњем примеру:
тест класе (вал а: Инт) (// код)
Ево како можете да промените његову видљивост.
класа Тест приватни конструктор (вал а: Инт) (// код)
Ево конструктора private.
Напомена: У Котлину локалне функције, променљиве и класе не могу имати модификаторе видљивости.








