Java
一、访问修饰符(访问控制修饰符)
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问
- public : 对所有类可见。使用对象:类、接口、变量、方法
- protected : 对同一包内的类和所有子类可见。使用对象:变量、方法 注意:不能修饰类(外部类)
- default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符 使用对象:类、接口、变量、方法
- private : 在同一类内可见。使用对象:变量、方法 注意:不能修饰类(外部类)
修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
---|---|---|---|---|---|
public | Y | Y | Y | Y | Y |
protected | Y | Y | Y | Y/N(说明) | N |
default | Y | Y | Y | N | N |
private | Y | N | N | N | N |
二、非访问修饰符
- static : 用来修饰类方法和类变量
- final : 用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的
- abstract : 用来创建抽象类和抽象方法
- synchronized 和 volatile 修饰符,主要用于线程的编程
TypeScript
一、访问修饰符
public
:公开的,谁都能用(默认public)private
:私有的,仅类自己里头才能使用protected
:受保护的,仅仅类和类的子类能使用
二、只读修饰符
- readonly : 只能读不能写,需要注意的时,即使是
readonly
的东西,在初始化之前是可以写,即在constructor
中可以初始化或更改
readonly
的属性,仅两个地方可以写:
- 在声明同时赋予初始值
- 在构造函数中赋值或者修改初始值
三、静态修饰符
static
: 静态的,通过static
修饰的成员叫静态成员,静态成员无需实例化,直接通过类名调用
注意
- 修饰符是可选的,在没有写任何修饰符,默认有个
public
- 同类修饰符只能有一个
- 三种修饰符有先后顺序,分别是:访问、静态、只读
即:【public/static/protected】【static】【readonly】
修饰符 | Java | TypeScript |
---|---|---|
private | O | O |
protected | O | O |
default | O 默认 | X |
public | O | O 默认 |
readonly | X | O |
static | O | O |
final | O | X |
abstract | O | O |