Kotlin的访问权限管理

遇横逆之来而不怒
遭变故之起而不惊
当非常之谤而不辩

1. Java中的权限修饰符

我们知道在Java中有四种权限修饰符

  1. public
  2. private
  3. protected
  4. 什么也不写(即我们常说的default)

既然是权限修饰符,首先我们要明白对What进行权限管理。

1. 修饰对象
  1. 类的成员(变量,方法(构造方法它也是方法),内部类)

只有 publicdefault才能修饰类


2. 权限范围

public的字面意思是"公共的,公开的", 所以public是权限最大的修饰符。
private的字面意思是“私有的”, 所以private是权限最小的修饰符。
protected的意思是“保护的”。

总结一下:

修饰符 同一个类 同一个包 不同包子类 不同包且非子类
public Y Y Y Y
private Y N N N
protected Y Y Y N
Y Y N N

说实在,学习Java的时候,一直认为其default的访问权限设计的不合理。Kotlin毕竟是站在巨人的肩膀上产生的。

在这里插入图片描述

2. Kotlin中的权限修饰符

Kotlin在没有显式指定修饰符的时候,默认可见性是public

2.1 Kotlin中的Top-Level(顶层)类型

我相信大家在刚开始学习Kotlin的时候,都会有此疑惑:

Kotlin在新建文件时有所不一样,其独有的File类型,文件类型为.kt。简而言之,这就是文档中的top-level类型。

我们可以在Kotlin的.kt文件中,可以在内部定义接口单例方法属性,建议大家可以自己试一下。

我们知道protected独特之处是子类关系。protected修饰符是不允许修饰top-level成员的。(PS:想要使用top-level中的成员,必须要import)

Kotlin的类型

其它的类型都能跟Java对应上(PS:Object类型是Kotlin用来声明单例的)

2.2 Kotlin中的权限修饰总结
修饰符 作用 Top-Level
public 全部可见 全部可见
internal 模块内可见 模块内可见
protected 自身内部+子类
private 自身内部 自身内部

Kotlin中文网站
Kotlin官网

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章