本文共 1253 字,大约阅读时间需要 4 分钟。
可见性修饰符可以对创建的任何代码设置可见性。
kotlin的可见性修饰符有 public(默认)、private、protected、internal
,可以被修饰的有类(包括抽象类)、对象、接口、函数(包括构造函数)、属性。
Java
包下面的源文件中的顶级代码只有类/接口,但是kotlin
中,类/接口、变量、函数都可以作为顶级代码声明在源文件中。
在 Intellij IDEA
中只有类的kotlin
文件和有多种顶级代码的图标上也有区别:
包或者源文件下的代码可以被public(默认)、private、internal
修饰:
//example.ktpackage foo//源文件或者包中可以定义的顶层声明:类、对象、属性、函数、接口//包->类class Example {}//包->对象var example: Example = Example()//包->属性var name = "Jairus"//包->函数internal fun baz() {}//包->接口private interface OnClickedListener {}
通过包名调用顶级代码:
foo.baz()foo.namefoo.example
修饰符可见性:
public(可省略)
:所有地方可见private
:同一源文件可见internal
:同一模块可见跟 Java
一样,kotlin
的 类/接口
里面可以有属性、函数,可以被 public(默认)、private、protected、internal
修饰。
注意事项:
internal
修饰protected
成员被子类覆盖的话,在子类中默认也是 protected
的open class Example { //类->属性 var name = "Jairus" //类->函数 private fun baz() {} protected fun baz2() {} internal fun baz3() { //局部变量 var name = "Jairus" //局部函数 fun baz() {} //局部类 class Example {} }}interface OnClickedListener { //接口->函数 fun baz() {} private fun baz2() {}}
修饰符可见性:
public(可省略)
:类成员在所有地方可见private
:类成员仅在类中可见protected
:类成员仅在类和子类中可见internal
:类成员对同一模块中可以看见类的内容可见一个模块是编译在一起的一套kotlin
文件,如 Intellij IDEA 模块。
转载地址:http://jwqef.baihongyu.com/