Kotlin入門學(xué)習(xí)教程之可見(jiàn)性修飾符
前言
在Kotlin中四種可見(jiàn)性修飾符:private、protected、internal、public,如果沒(méi)有顯示指定修飾符的話,默認(rèn)可見(jiàn)性是public。
四種修飾符的說(shuō)明
- public修飾符表示 公有 。此修飾符的范圍最大。當(dāng)不聲明任何修飾符時(shí),系統(tǒng)會(huì)默認(rèn)使用此修飾符。
- internal修飾符表示 模塊 。對(duì)于模塊的范圍在下面會(huì)說(shuō)明。
- protected修飾符表示 私有`+`子類。值得注意的是,此修飾符不能用于頂層聲明,在下面可以看到。
- private修飾符表示 私有 。此修飾符的范圍最小,即可見(jiàn)性范圍最低。
1、包場(chǎng)景下的可見(jiàn)性修飾符
package com.iflytek.basekotlin.`class` //函數(shù)、屬性、類、對(duì)象和接口都可以在頂層聲明,即直接在包內(nèi) 2021/6/22 fun method(){} // 默認(rèn)為public ,隨處可見(jiàn) 2021/6/22 private class ClassA(){} // 只在該文件內(nèi)可見(jiàn) 2021/6/22 private val classA:ClassA = ClassA() // 此處只能用private,因?yàn)镃lassA只在該文件內(nèi)可見(jiàn),所以其對(duì)象也是 2021/6/22 internal interface InterfaceA{} // 只在同模塊內(nèi)可見(jiàn) 2021/6/22 protected var name:String = "" // 錯(cuò)誤:Modifier 'protected' is not applicable to 'top level property without backing field or delegate' 2021/6/22
- 如果不指定任何可見(jiàn)性修飾符,默認(rèn)為public,這意味著隨處可見(jiàn)
- 如果聲明為private,只在聲明的文件內(nèi)可見(jiàn)
- 如果聲明為internal,只在相同的模塊內(nèi)可見(jiàn)
- protected不適用于頂層聲明,即不適用于此場(chǎng)景
2、類內(nèi)部聲明的成員
open class VisibilityDemo{ private val a = true // 只在該類內(nèi)部可見(jiàn) 2021/6/22 protected val b = true // 在類內(nèi)部和其子類中可見(jiàn) 2021/6/22 internal val c = true // 能見(jiàn)到類聲明的本模塊任何客戶端都可見(jiàn) 2021/6/22 val d = true // 能見(jiàn)到類聲明的任何客戶端都可見(jiàn) 2021/6/22 } class SubVisibility:VisibilityDemo(){ fun visible(){ //println(a) // 不可見(jiàn) 2021/6/22 println(b) // 可見(jiàn) 2021/6/22 println(c) // 可見(jiàn) 2021/6/22 println(d) // 可見(jiàn) 2021/6/22 } } class UnRelated(){ fun visible(visibilityDemo: VisibilityDemo){ // println(visibilityDemo.a) // 不可見(jiàn) 2021/6/22 // println(visibilityDemo.b) // 不可見(jiàn) 2021/6/22 println(visibilityDemo.c) // 可見(jiàn) 2021/6/22 println(visibilityDemo.d) // 可見(jiàn) 2021/6/22 } }
- private 只在類內(nèi)部可見(jiàn)
- protected 在類及其子類中可見(jiàn)
- internal 能見(jiàn)到類聲明的本模塊內(nèi)可見(jiàn)
- public 能見(jiàn)到類聲明處可見(jiàn)
總結(jié)
到此這篇關(guān)于Kotlin入門學(xué)習(xí)教程之可見(jiàn)性修飾符的文章就介紹到這了,更多相關(guān)Kotlin可見(jiàn)性修飾符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實(shí)現(xiàn)果凍滑動(dòng)效果的控件
這篇文章給大家主要介紹了利用Android如何實(shí)現(xiàn)果凍效果滑動(dòng)效果的控件,實(shí)現(xiàn)的效果類似于iOS有阻尼效果的滑動(dòng)控件,一般我們比較親切地稱之為果凍控件,常見(jiàn)的如微信里[我]的那個(gè)面板模塊,即使沒(méi)有再多的選項(xiàng),也不會(huì)很生硬的不允許用戶滑動(dòng)。下面來(lái)一起看看吧。2016-11-11Android編程使用緩存優(yōu)化ListView的方法
這篇文章主要介紹了Android編程使用緩存優(yōu)化ListView的方法,涉及ListView針對(duì)sd卡緩存及內(nèi)存緩存的優(yōu)化技巧,需要的朋友可以參考下2015-12-12

Kotlin對(duì)象的懶加載方式by?lazy?與?lateinit?異同詳解

Android開(kāi)發(fā)實(shí)現(xiàn)圖片圓角的方法

Android Broadcast原理分析之registerReceiver詳解

Android基于MLKit實(shí)現(xiàn)條形碼掃碼的代碼示例

詳解Android中App的啟動(dòng)界面Splash的編寫方法