Kotlin_可见修饰符
2017-05-25 15:02
218 查看
类,对象,接口,构造器,函数,属性和他们的setters可以使用可见修饰符。(getters和属性有一样的可见性)。和java一样,kotlin一共有4个可见修饰符:private,protected,internal和public。和java不一样,kotlin默认是public。
(2)如果使用private,只有在声明文件中可用;
(3)如果使用internal,在同一个module中是可以访问的;
(4)protected不能在顶级声明中使用。
例子:
(1)如果使用private,只有类内部可以访问;
(2)如果使用protected,类的子类也能访问;
(3)如果使用internal,module中客户都能访问;
(4)如果使用public,任意客户都能访问。
java用户注意:外部类不能访问它内部类的private成员。
如果你覆盖了一个protected成员并且没有指定它的可见修饰符,这个被覆盖的变量也是protected的可见性。
例子:
包
函数,属性和类,对象和接口能在顶级被指定。例如,直接在包内。// file name: example.kt package foo fun baz() {} class Bar {}(1)如果你没有指定任何可见修饰符,默认public,这意味着你的声明任何地方都可以访问;
(2)如果使用private,只有在声明文件中可用;
(3)如果使用internal,在同一个module中是可以访问的;
(4)protected不能在顶级声明中使用。
例子:
// 文件名: example.kt package foo private fun foo() {} // 在文件 example.kt 内访问 public var bar: Int = 5 // 属性到处都可以访问 private set // setter 在文件 example.kt 内访问 internal val baz = 6 // 在同一个 module 内访问
类和接口
类内的成员声明:(1)如果使用private,只有类内部可以访问;
(2)如果使用protected,类的子类也能访问;
(3)如果使用internal,module中客户都能访问;
(4)如果使用public,任意客户都能访问。
java用户注意:外部类不能访问它内部类的private成员。
如果你覆盖了一个protected成员并且没有指定它的可见修饰符,这个被覆盖的变量也是protected的可见性。
例子:
open class Outer { private val a = 1 protected open val b = 2 internal val c = 3 val d = 4 // public by default protected class Nested { public val e: Int = 5 } } class Subclass : Outer() { // a 不可见 // b, c 和 d 可见 // Nested 和 e 可见 override val b = 5 // 'b' is protected } class Unrelated(o: Outer) { // o.a, o.b 不可见 // o.c and o.d 可见 (同一 module) // Outer.Nested 不可见, 和 Nested::e 也不可见 }
构造器:
指定主构造器的可见性,使用如下的语法(注意你需要增加constructor关键字):class C private constructor(a: Int) { ... }这里指定了一个private的构造器,默认,所有的构造器都是public的。
本地声明:
本地变量,函数和类不能使用可见修饰符。Modules
internal可见修饰符意味着同一个Modules的成员是可见的。更进一步,Modules是编译在一起的一组kotlin文件的集合。相关文章推荐
- Kotlin学习(11):可见性修饰符
- Kotlin-2.4-可见性修饰符
- 学习kotlin第八天_接口、可见性修饰符、扩展
- Kotlin 官方学习教程之可见性修饰符
- Kotlin学习(十): 可见性修饰符和数据类
- Kotlin学习(四)—— 类和对象,继承,覆盖,抽象类,属性和字段,接口,可见性修饰符,扩展
- Kotlin Reference (八) 可见性修饰符, data class,object Claz
- Kotlin基础(一) 常量、变量、可见性修饰符
- Kotlin学习(四)—— 类和对象,继承,覆盖,抽象类,属性和字段,接口,可见性修饰符,扩展
- Kotlin 学习之可见性修饰符
- Kotlin 从学习到 Android 第九章 可见性修饰符
- Kotlin 中的操作符重载汇总表 与 可见性修饰符总结
- Kotlin 可见性修饰符
- Kotlin-可见性修饰符
- Kotlin汇总3-接口,可见作用域,扩展,数据类,密封类
- 可见性修饰符
- kotlin---02、基本语法(包,可见)
- [kotlin系列] (s2_2)属性、字段、接口、可见性修饰
- Java可见性修饰符与参数传递
- Kotlin系列之继承相关修饰符