本文概述
- 公开编辑
- 受保护的修饰符
- 内部编辑
- 私人编辑
【Kotlin可见性修改器】在Kotlin中, 可见性修改器分为四种不同类型:
- 上市
- 受保护的
- 内部
- 私人的
public class Example{}class Demo{}public fun hello()fun demo()public val x = 5val y = 10
所有公共声明都可以放在文件顶部。如果未指定class的成员, 则默认情况下为public。
受保护的修饰符具有类或接口的受保护修饰符仅允许对其类或子类可见。除非显式更改其子类中的受保护的声明(在重写时), 否则它也是受保护的修饰符。
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}
内部编辑内部修饰符是Kotlin中新添加的, 在Java中不可用。声明任何内容都会将该字段标记为内部字段。内部修饰符使该字段仅在实现它的模块内部可见。
internal class Example{internal val x = 5internal fun getValue(){}}internal val y = 10
在上面, 所有字段都声明为内部字段, 这些字段只能在实现它们的模块内部访问。
私人编辑私有修饰符仅允许在声明属性, 字段等的块内访问该声明。 private修饰符声明不允许访问范围的外部。可以在该特定文件中访问私有软件包。
private class Example {private val x = 1private valdoSomething() {}}
在上面的类Example中, val x和函数doSomthing()被声明为private。可以从同一源文件访问“示例”类, 在示例类中可以访问“ val x”和“ fun doSomthing()”。
可见性修改器示例
open class Base() {var a = 1 // public by defaultprivate var b = 2 // private to Base classprotected open val c = 3// visible to the Base and the Derived classinternal val d = 4 // visible inside the same moduleprotected fun e() { } // visible to the Base and the Derived class}class Derived: Base() {// a, c, d, and e() of the Base class are visible// b is not visibleoverride val c = 9 // c is protected}fun main(args: Array<
String>
) {val base = Base()// base.a and base.d are visible// base.b, base.c and base.e() are not visibleval derived = Derived()// derived.c is not visible}
推荐阅读
- Kotlin when表达式
- Kotlin变量
- Kotlin实用程序功能
- Java互操作性(从Java调用Kotlin代码)
- Java互操作性
- Kotlin不安全和安全的转换操作符
- Kotlin类型转换
- Kotlin教程介绍
- Kotlin try-catch语句