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!

推薦閱讀: