可见性修饰符是关键字,用于限制应用程序中Kotlin的类,接口,方法和属性的使用。这些修饰符可在多个位置使用,例如类标题或方法主体。
在Kotlin中有四种不同类型:
在项目的任何地方都可以访问public修饰符。它是Kotlin中的默认修饰符。如果未使用任何访问修饰符指定任何类,接口等,则该类,接口等将在公共范围内使用。
public class Example{ } class Demo{ } public fun hello() fun demo() public val x = 5 val y = 10
所有公共声明都可以放在文件顶部。如果未指定class的成员,则默认情况下为public。
具有类或接口的受保护(protected)修饰符仅允许对其类或子类可见。
open class Base{ protected val i = 0 } class Derived : Base(){ fun getValue() : Int { return i } }
在Kotlin中,不能在顶层声明protected修饰符。
open class Base{ open protected val i = 5 } class Another : Base(){ fun getValue() : Int { return i } override val i =10 }
internal修饰符是在Kotlin中新添加的,在Java中不可用。任何内容都会将该字段标记为内部字段。内部修饰符使该字段仅在实现它的模块内部可见。
internal class Example{ internal val x = 5 internal fun getValue(){ } } internal val y = 10
在上面,所有字段都声明为内部字段,这些字段只能在实现它们的模块内部访问。
private修饰符仅允许在声明了属性,字段等的块内访问该声明。 private修饰符声明不允许访问范围的外部。
private class Example { private val x = 1 private valdoSomething() { } }
在上面的示例示例中,val x和函数doSomthing()被声明为private。可以在示例类中访问“ val x”和“ fun doSomthing()”。
open class Base() { var a = 1//默认公开 private var b = 2//基类私有 protected open val c = 3 //对 Base 和 Derived 类可见 internal val d = 4//在同一模块内可见 protected fun e() { }//对 Base 和 Derived 类可见 } class Derived: Base() { //Base 类的 a、c、d 和 e() 可见 //b 不可见 override val c = 9//c is protected } fun main(args: Array<String>) { val base = Base() //base.a 和 base.d 可见 //base.b、base.c 和 base.e() 不可见 val derived = Derived() //派生的.c 不可见 }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)