kotlin中有四种修饰符:
- public
- private
- protected
- inernal
函数,属性和类,对象,接口 可以在“top level”中声明,可以直接属于包
//info.kt
package example
fun more() {
print("more")
}
class info() {}
package example
class Test() {
fun out() {
example.more()
}
fun main(args: Array<String>) {
out()
}
}
more
方法定义在info.kt的最外层即 top_level中,属于包权限方法
在example包下的Test类中,可以直接通过包名调用more
方法
- 如果没有指定任何可见性修饰词,默认使用
public
,说明声明在任何地方都可见。- 如果声明为
private
,则只在包含声明的文件中可见。- 如果用
internal
声明,则在同一个module中的任何地方中可见protected
在top-level中不可以使用
类和接口
如果覆写一个protected
的成员但是没有指定可见性,那么该复写的成员具有protected
的可见性
外部类不可以访问内部类的private成员
构造函数
指定构造函数的可见性
class Test private constructor() {}
模块
可见性修饰符internal意味着该成员只在相同的模块内可见
一个模块是编译在一起的一套kotlin文件