Kotlin入門學(xué)習(xí)教程之可見性修飾符
前言
在Kotlin中四種可見性修飾符:private、protected、internal、public,如果沒有顯示指定修飾符的話,默認(rèn)可見性是public。
四種修飾符的說明
- public修飾符表示 公有 。此修飾符的范圍最大。當(dāng)不聲明任何修飾符時,系統(tǒng)會默認(rèn)使用此修飾符。
- internal修飾符表示 模塊 。對于模塊的范圍在下面會說明。
- protected修飾符表示 私有`+`子類。值得注意的是,此修飾符不能用于頂層聲明,在下面可以看到。
- private修飾符表示 私有 。此修飾符的范圍最小,即可見性范圍最低。
1、包場景下的可見性修飾符
package com.iflytek.basekotlin.`class`
//函數(shù)、屬性、類、對象和接口都可以在頂層聲明,即直接在包內(nèi) 2021/6/22
fun method(){} // 默認(rèn)為public ,隨處可見 2021/6/22
private class ClassA(){} // 只在該文件內(nèi)可見 2021/6/22
private val classA:ClassA = ClassA() // 此處只能用private,因為ClassA只在該文件內(nèi)可見,所以其對象也是 2021/6/22
internal interface InterfaceA{} // 只在同模塊內(nèi)可見 2021/6/22
protected var name:String = "" // 錯誤:Modifier 'protected' is not applicable to 'top level property without backing field or delegate' 2021/6/22
- 如果不指定任何可見性修飾符,默認(rèn)為public,這意味著隨處可見
- 如果聲明為private,只在聲明的文件內(nèi)可見
- 如果聲明為internal,只在相同的模塊內(nèi)可見
- protected不適用于頂層聲明,即不適用于此場景
2、類內(nèi)部聲明的成員
open class VisibilityDemo{
private val a = true // 只在該類內(nèi)部可見 2021/6/22
protected val b = true // 在類內(nèi)部和其子類中可見 2021/6/22
internal val c = true // 能見到類聲明的本模塊任何客戶端都可見 2021/6/22
val d = true // 能見到類聲明的任何客戶端都可見 2021/6/22
}
class SubVisibility:VisibilityDemo(){
fun visible(){
//println(a) // 不可見 2021/6/22
println(b) // 可見 2021/6/22
println(c) // 可見 2021/6/22
println(d) // 可見 2021/6/22
}
}
class UnRelated(){
fun visible(visibilityDemo: VisibilityDemo){
// println(visibilityDemo.a) // 不可見 2021/6/22
// println(visibilityDemo.b) // 不可見 2021/6/22
println(visibilityDemo.c) // 可見 2021/6/22
println(visibilityDemo.d) // 可見 2021/6/22
}
}
- private 只在類內(nèi)部可見
- protected 在類及其子類中可見
- internal 能見到類聲明的本模塊內(nèi)可見
- public 能見到類聲明處可見
總結(jié)
到此這篇關(guān)于Kotlin入門學(xué)習(xí)教程之可見性修飾符的文章就介紹到這了,更多相關(guān)Kotlin可見性修飾符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程使用緩存優(yōu)化ListView的方法
這篇文章主要介紹了Android編程使用緩存優(yōu)化ListView的方法,涉及ListView針對sd卡緩存及內(nèi)存緩存的優(yōu)化技巧,需要的朋友可以參考下2015-12-12
Android?App頁面滑動標(biāo)題欄顏色漸變詳解
這篇文章主要為大家詳細(xì)介紹了Android?App頁面滑動標(biāo)題欄顏色漸變,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Kotlin對象的懶加載方式by?lazy?與?lateinit?異同詳解
這篇文章主要為大家介紹了Kotlin對象的懶加載方式by?lazy?與?lateinit?異同詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android Broadcast原理分析之registerReceiver詳解
這篇文章主要介紹了Android Broadcast原理分析之registerReceiver詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Android基于MLKit實現(xiàn)條形碼掃碼的代碼示例
這篇文章將借助開源庫?MLKit?實現(xiàn)條形碼掃描,對于商品條形碼也可以很好地識別成功,該庫的使用內(nèi)容非常豐富,除了條碼識別,還有文字識別、圖像標(biāo)記、人臉檢測等等,本文篇文章就只介紹最基本的條形碼掃描使用,需要的朋友可以參考下2023-08-08

