1、可见性修饰符是什么?
类,对象,接口,构造器,函数,属性和他们的setter都可以有
可见性修饰符
(getter具有和属性同样的可见性)。一共四种:private、protected、internal和public。默认的可见性都是public。
2、包(packages)中的可见性:
可见性 | 范围 |
---|---|
private | 仅仅在包含该定义的文件中可见 |
public | 在任何地方可见 |
internel | 在同module模块的任何地方可见 |
protected | 对于顶层的声明不可见 |
3、类和接口中(成员)的可见性:
可见性 | 范围 |
---|---|
private | 在同类中可见 |
public | 所属类可见的地方,public的成员也就可见 |
internel | 所属类可见的同一个模块中,就能访问internel成员 |
protected | 等同于private+在子类中可见 |
4、可见性与Java的区别
- 外部类不能访问内部类的private成员(Java中可以)
5、如果重载protected成员,并且没有显式指明可见性,那么该重载的成员将继续保持protected
6、构造器的可见性
必须在显式的constructor构造器前指明可见性
class C private constructor(a: Int) { ... }
7、局部变量、函数、类都没有可见性修饰符