Kotlin与Java可见性修饰符对比
1、Java
| 类中成员修饰符 | 同一类中可访问 | 同一包中可访问 | 不同包中可访问 | 子类中可访问 |
| public | √ | √ | √ | √ |
| protected | √ | √ | × | √ |
| (default) | √ | √ | × | × |
| private | √ | × | × | × |
2、Kotlin
| 包中成员修饰符 | 同一文件中可访问 | 同一模块中可访问 | 不同模块中可访问 |
| public | √ | √ | √ |
| internal | √ | √ | × |
| protected | 不适用于顶层声明 | ||
| private | √ | × | × |
- 如果你不指定任何可见性修饰符,默认为
public,这意味着你的声明将随处可见; - 如果你声明为
private,它只会在声明它的文件内可见; - 如果你声明为
internal,它会在相同模块内随处可见; protected不适用于顶层声明。
| 类中成员修饰符 | 同一类中可访问 | 同一模块中可访问 | 不同模块中可访问 | 子类中可访问 |
| public | √ | √ | √ | √ |
| internal | √ | √ | × | √ |
| protected | √ | × | × | √ |
| private | √ | × | × | × |
private意味着只在这个类内部(包含其所有成员)可见;protected—— 和private一样 + 在子类中可见。internal—— 能见到类声明的 本模块内 的任何客户端都可见其internal成员;public—— 能见到类声明的任何客户端都可见其public成员。

浙公网安备 33010602011771号