Kotlin类和对象 (四)--- 可见性修饰符
来源:互联网 发布:手机上微页制作软件 编辑:程序博客网 时间:2024/05/18 00:43
1、可见性修饰符
Kotlin中,有四种可见性修饰符:private, protected, internal and public
默认的可见性修饰是 public
类/对象/接口/构造函数/方法/属性和setter都有可见性修饰符(getter与属性可见性相同)
2、包 中
方法/属性/类/对象/接口 可在顶级声明,即直接在包中声明:
// file name: example.ktpackage foofun baz() {}class Bar {}
- public:默认的,随处可见
- private: 只在声明的文件内可见
- internal: 在同一模块内随处可见
- protected: 不适用于顶层声明
// file name: example.ktpackage fooprivate fun foo() {} // visible inside example.ktpublic var bar: Int = 5 // property is visible everywhere private set // setter is visible only in example.ktinternal val baz = 6 // visible inside the same module
注意: 如果使用另一个包中顶级声明,仍然需要导包。
import com.kotlin.appendNamefun main(args: Array<String>) { println(appendName)}
3、类和接口 中
对于在类中或者接口中声明的成员:
- public:公共,随处可见
- private: 只在本类中可见(包括该类所有的成员)
- internal: 在同一模块内随处可见
- protected: 同private及其子类中可见
注意:在Kotlin中,外层的类(outer class) 不能访问内部类(inner class)的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 is not visible // b, c and d are visible // Nested and e are visible override val b = 5 // 'b' is protected}class Unrelated(o: Outer) { // o.a, o.b are not visible // o.c and o.d are visible (same module) // Outer.Nested is not visible, and Nested::e is not visible either }
4 、构造函数
要指定类的主要构造函数的可见性,请使用以下语法(注意,构造函数需要使用“constructor ”关键字显式声明):
class C private constructor(a: Int) { ... }
默认情况下,所有构造函数都是 public ,类可见它就可见。(即内部类的构造函数 只在同一模块中可见)
6、局部声明
局部变量,函数和类不能添加可见性修饰符。
7、模块
可见性修饰符internal: 只在相同模块内可见
一个模块是一起编译的一套Kotlin文件:
一个IntelliJ IDEA模块
一个Maven或者Gradle项目
通过一次调用Ant任务编译的一套Kotlin文件
阅读全文
0 0
- Kotlin类和对象 (四)--- 可见性修饰符
- Kotlin学习(四)—— 类和对象,继承,覆盖,抽象类,属性和字段,接口,可见性修饰符,扩展
- Kotlin 可见性修饰符
- Kotlin学习(十): 可见性修饰符和数据类
- Kotlin学习笔记(五)接口,可见性修饰符
- Kotlin基础(一) 常量、变量、可见性修饰符
- Kotlin 学习之可见性修饰符
- Kotlin-2.4-可见性修饰符
- java类和对象学习笔记(二)数据域封装和可见性修饰符
- Kotlin 官方学习教程之可见性修饰符
- Kotlin-11.可见性修饰符(Visibility Modifiers)
- [kotlin系列] (s2_2)属性、字段、接口、可见性修饰
- Kotlin最简单的入门教程——可见性修饰符,扩展,数据类,密封类
- Kotlin类和对象(三)——接口与访问修饰符
- 可见性修饰符
- Kotlin 中的操作符重载汇总表 与 可见性修饰符总结
- 学习kotlin第八天_接口、可见性修饰符、扩展
- Kotlin 从学习到 Android 第九章 可见性修饰符
- js或者css样式未生效。
- 国王游戏(贪心+模拟)
- 2017软开秋招之路--下半程记录
- 自定义组合控件处理
- CSS绘制三角形
- Kotlin类和对象 (四)--- 可见性修饰符
- 数据存储(无数据库版)之四:Email提醒
- Tablayout+viewpager
- Hbase启动时没有Hmaster进程
- 关于string中的如果使用变量的笔记
- 【MTK】如何开关默认USB调试功能
- setNeedsLayout、layoutIfNeeded and layoutSubviews区别
- fedora 26 添加一个用户并且让用户获得root权限
- HBase数据导入----improttsv