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文件:
- 一个IntelliJ IDEA模块;
- Maven或Gradle项目;
- 一组调用Ant任务编译的文件。