Котлин модификатори видљивости

У овом чланку ћете сазнати о сва 4 модификатора видљивости у Котлину и како они функционишу у различитим сценаријима.

Модификатори видљивости су кључне речи које постављају видљивост (приступачност) класа, објеката, интерфејса, конструктора, функција, својстава и њихових постављача. (Не можете подесити модификатор видљивости гетера јер они увек имају исту видљивост као и својство.)

У Котлин класа и објеката Члан, сте сазнали о видљивости модификатора publicи privateукратко. Сазнаћете два модификатора више видљивости protectedи internal(као publicи private) детаљно.

Модификатори видљивости унутар пакета

Пакет организује скуп повезаних функција, својстава и класа, објеката и интерфејса. Препоручено читање: Котлин пакети

Модификатор Опис
јавно декларације су видљиве свуда
приватни видљиво унутар датотеке која садржи декларацију
унутрашње видљив унутар истог модула (скуп Котлин датотека састављених заједно)
заштићен није доступно за пакете (користи се за поткласе)

Напомена: Ако модификатор видљивости није наведен, publicподразумевано је.

Узмимо пример:

 // назив датотеке: хелло.кт пакет тест фун фунцтион1 () () // подразумевано јавно и видљиво свуда привате фун фунцтион2 () () // видљиво унутар хелло.кт интерне функције фун3 () () // видљиво унутар исти модул вар наме = "Фоо" // свуда видљиво гет () = поље // видљиво унутар хелло.кт (исто као и његово својство) привате сет (валуе) (// висибле инсиде хелло.кт фиелд = валуе) привате цласс цласс1 () // видљиво изнутра хелло.кт

Модификатори видљивости унутар класа и интерфејса

Ево како модификатори видљивости раде за чланове (функције, својства) декларисане унутар класе:

Модификатор Опис
јавно видљив сваком клијенту који може видети класу пријављивања
приватни видљиво само унутар класе
заштићен видљив унутар класе и њених поткласа
унутрашње видљив сваком клијенту унутар модула који може да види класу пријављивања

Напомена: Ако замените protectedчлана у изведеној класи без навођења његове видљивости, његова видљивост ће такође бити protected.

Узмимо пример:

 отворена класа Басе () (вар а = 1 // јавно по дефаулту приватно вар б = 2 // приватно према основној класи заштићено отворено вал ц = 3 // видљиво за базу и изведену класу интерни вал д = 4 // видљиво унутар истог модула заштићена је забавна класа е () () // видљива класи и изведеној класи) Изведено: Басе () (// видљиви су а, ц, д и е () основне класе // б није видљиво заменити вал ц = 9 // ц је заштићен) фун маин (аргс: Арраи) (вал басе = Басе () // басе.а и басе.д су видљиви // басе.б, басе.ц и басе .е () нису видљиви вал изведено = Изведено () // изведено.ц није видљиво) 

Промена видљивости конструктора

Подразумевано је видљивост конструктора public. Међутим, можете га променити. За то је потребно изричито додати constructorкључну реч.

Конструктор је publicподразумевано у доњем примеру:

 тест класе (вал а: Инт) (// код) 

Ево како можете да промените његову видљивост.

 класа Тест приватни конструктор (вал а: Инт) (// код)

Ево конструктора private.

Напомена: У Котлину локалне функције, променљиве и класе не могу имати модификаторе видљивости.

Занимљиви Чланци...