在Java中,类、方法、成员变量和局部变量的可用修饰符的掌握是十分重要的,因此,我在其他人的基础之上进行了归纳,见下表:
修饰符 | 普通类 | 普通接口 | 抽象类 | 内部类 | 内部接口 | 局部内部类 | 局部接口 | 构造方法 | 成员方法 | 抽象方法 | 成员变量 | 局部变量 |
public | 可以 | 可以 | 可以 | 可以 | 可以 |
| 非法, 不存在 局部接口 | 可以 | 可以 | 可以 | 可以 |
|
protected |
|
| 可以 | 可以 |
| 可以 | 可以 | 可以 | 可以 |
| ||
private |
|
|
| 可以 | 可以 |
| 可以 | 可以 |
| 可以 |
| |
abstract | 可以 | 可以(默认值) | 必须 | 可以 | 可以 | 可以 | 可以 | 必须 |
| |||
static |
|
| 可以 | 可以 |
| 可以 |
| 可以 |
| |||
final | 可以 |
|
| 可以 |
| 可以 |
| 可以 |
| 可以 | 可以 | |
strictfp | 可以 | 可以 | 可以 | 可以 | 可以 | 可以 |
| 可以 |
|
|
| |
synchronized |
|
|
|
|
|
|
| 可以 |
|
|
| |
native |
|
|
|
|
|
|
| 可以 |
|
|
| |
transient |
|
|
|
|
|
|
|
|
| 可以 |
| |
volatile |
|
|
|
|
|
|
|
|
| 可以 |
|
注:所有类、方法、变量均可以不使用任何修饰符,即默认为friendly