Kotlin的访问修饰符是否和Java中的一样?

Kotlin有3个访问关键字: publicprivateprotected 。 他们的意思是和Java一样的东西,还是有区别? 另外, internal是否与package private相同? 我一直在阅读关于Kotlin的“模块”,我不确定这是不是“包”的另一个词。

Kotlin的访问修饰符并不总是与Java中的一样。 例如,Kotlin允许接口中protected成员,而Java则不允许。

模块是仅编译时的实体。 他们将源文件分组并且声明它们的依赖关系(二进制库和其他模块)。 一个模块是一个编译单元,即它的所有文件都被编译在一起(实际上有逐个文件的渐进式编译,但其效果必须与重新编译整个模块相同)。

例如,每个Maven pom隐式声明一个模块,IDE在Project View和Project Structure中有模块。