Kotlin入門學習教程之可見性修飾符
前言
在Kotlin中四種可見性修飾符:private、protected、internal、public,如果沒有顯示指定修飾符的話,默認可見性是public。
四種修飾符的說明
- public修飾符表示 公有 。此修飾符的范圍最大。當不聲明任何修飾符時,系統會默認使用此修飾符。
- internal修飾符表示 模塊 。對於模塊的范圍在下面會說明。
- protected修飾符表示 私有`+`子類。值得註意的是,此修飾符不能用於頂層聲明,在下面可以看到。
- private修飾符表示 私有 。此修飾符的范圍最小,即可見性范圍最低。
1、包場景下的可見性修飾符
package com.iflytek.basekotlin.`class` //函數、屬性、類、對象和接口都可以在頂層聲明,即直接在包內 2021/6/22 fun method(){} // 默認為public ,隨處可見 2021/6/22 private class ClassA(){} // 隻在該文件內可見 2021/6/22 private val classA:ClassA = ClassA() // 此處隻能用private,因為ClassA隻在該文件內可見,所以其對象也是 2021/6/22 internal interface InterfaceA{} // 隻在同模塊內可見 2021/6/22 protected var name:String = "" // 錯誤:Modifier 'protected' is not applicable to 'top level property without backing field or delegate' 2021/6/22
- 如果不指定任何可見性修飾符,默認為public,這意味著隨處可見
- 如果聲明為private,隻在聲明的文件內可見
- 如果聲明為internal,隻在相同的模塊內可見
- protected不適用於頂層聲明,即不適用於此場景
2、類內部聲明的成員
open class VisibilityDemo{ private val a = true // 隻在該類內部可見 2021/6/22 protected val b = true // 在類內部和其子類中可見 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 隻在類內部可見
- protected 在類及其子類中可見
- internal 能見到類聲明的本模塊內可見
- public 能見到類聲明處可見
總結
到此這篇關於Kotlin入門學習教程之可見性修飾符的文章就介紹到這瞭,更多相關Kotlin可見性修飾符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java中默認的訪問權限作用域解析
- Kotlin與Java相互調用的完整實例
- 秒懂Kotlin之Java工程師快速掌握Kotlin的技巧
- 關於C++虛函數與靜態、動態綁定的問題
- Kotlin原理詳析之拓展函數