这篇文章主要介绍Kotlin中可见性修饰符有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
前言
在Kotlin中四种可见性修饰符:private、protected、internal、public,如果没有显示指定修饰符的话,默认可见性是public。
四种修饰符的说明
public修饰符表示 公有 。此修饰符的范围最大。当不声明任何修饰符时,系统会默认使用此修饰符。
internal修饰符表示 模块 。对于模块的范围在下面会说明。
protected修饰符表示 私有`+`子类。值得注意的是,此修饰符不能用于顶层声明,在下面可以看到。
private修饰符表示 私有 。此修饰符的范围最小,即可见性范围最低。
1、包场景下的可见性修饰符
package com.iflytek.basekotlin.`class`//函数、属性、类、对象和接口都可以在顶层声明,即直接在包内 2021/6/22fun method(){} // 默认为public ,随处可见 2021/6/22private class ClassA(){} // 只在该文件内可见 2021/6/22private val classA:ClassA = ClassA() // 此处只能用private,因为ClassA只在该文件内可见,所以其对象也是 2021/6/22internal interface InterfaceA{} // 只在同模块内可见 2021/6/22protected 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中可见性修饰符有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!