Kotlin访问修饰符

我试图学习Kotlin,并且遇到了关于访问修饰符的困惑,与Java相比,Kotlin具有私有,公共,内部和受保护的访问修饰符,

那么内部与包相同吗? 一个小例子:

package A private fun foo() {} // visible inside example.kt public var bar: Int = 5 // property is visible everywhere private set // setter is visible only in example.kt internal val baz = 6 // visible inside the same module 

在Java中,有一个Package的概念,但不在Kotlin中。

在Java中,包装意味着A是一组类似的类,接口和子包。

与Java相比,Kotlin有一个Module的概念,按照Kotlin的文档,模块的定义如下:

Kotlin的模块

内部可见性修饰符意味着成员在同一个模块中可见。 更具体地说,一个模块是一组编译在一起的Kotlin文件:

  1. 一个IntelliJ IDEA模块;
  2. Maven或Gradle项目;
  3. 一组调用Ant任务编译的文件。