溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Kotlin中可見(jiàn)性修飾符有什么用

發(fā)布時(shí)間:2021-11-11 13:29:12 來(lái)源:億速云 閱讀:117 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹Kotlin中可見(jiàn)性修飾符有什么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

前言

在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修飾符表示 私有`+`子類(lèi)。值得注意的是,此修飾符不能用于頂層聲明,在下面可以看到。

  • private修飾符表示 私有 。此修飾符的范圍最小,即可見(jiàn)性范圍最低。

1、包場(chǎng)景下的可見(jiàn)性修飾符

package com.iflytek.basekotlin.`class`
//函數(shù)、屬性、類(lèi)、對(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、類(lèi)內(nèi)部聲明的成員

open class VisibilityDemo{
    private val a = true // 只在該類(lèi)內(nèi)部可見(jiàn)  2021/6/22
    protected val b = true // 在類(lèi)內(nèi)部和其子類(lèi)中可見(jiàn)  2021/6/22
    internal val c = true // 能見(jiàn)到類(lèi)聲明的本模塊任何客戶(hù)端都可見(jiàn)  2021/6/22
    val d = true // 能見(jiàn)到類(lèi)聲明的任何客戶(hù)端都可見(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 只在類(lèi)內(nèi)部可見(jiàn)

  • protected 在類(lèi)及其子類(lèi)中可見(jiàn)

  • internal 能見(jiàn)到類(lèi)聲明的本模塊內(nèi)可見(jiàn)

  • public 能見(jiàn)到類(lèi)聲明處可見(jiàn)

以上是“Kotlin中可見(jiàn)性修飾符有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI