Java中有public
、private
、protected
和default
(什么都不 写)这4种函数可见性修饰符。Kotlin 中也有4种,分别是public
、private
、 protected
和internal
,需要使用哪种修饰符时,直接定义在fun关键字的前面即可。下面详细介绍一下 Java和Kotlin中这些函数可见性修饰符的异同
首先private
修饰符在两种语言中的作用是一模一样的, 都表示只对当前类内部可见
public
修饰符的作用虽然也是一致的,表示对所有类都可见,但是在Kotlin中public
修饰符 是默认项,而在Java中default
才是默认项。前面我们定义了那么多的函数,都没有加任何的 修饰符,所以它们默认都是public的
protected
关键字在Java中表示对当前类、子类和同一 包路径下的类可见,在Kotin中则表示只对当前类和子类可见
Kotlin抛弃了Java中的default
可见性(同一包路径下的类可见),引入了一种新的可见性概念,只对同一模块中的类可见,使 用的是internal
修饰符。比如我们开发了一个模块给别人使用,但是有一些函数只允许在模块 内部调用,不想暴露给外部,就可以将这些函数声明成internal