访问修饰符有四种:public,protected,default,private
包外 子类 包内 类内
public yes yes yes yes
protected no yes yes yes
default(package) no no yes yes
private no no no yes
常用的修饰符有:static, final,abstract
修饰的顺序一般是 :访问修饰符+修饰符+类\方法\变量
名称 | 可以修饰 | 备注 |
public | 类、方法、域、接口 | public类必须定义在和类名相同的同名文件中 |
protected | 方法、域 |
|
default(package) | 类、方法、域、接口 | 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 |
private | 嵌套类、方法、域 |
|
|
|
|
static | 方法、域、 | 可以被类的所有实例共享,不需要创建类的实例就可以访问 |
abstract | 类、方法 | abstract 类:不能被实例化 abstract方法:没有具体实现 |
final | 类、方法、域、变量 | final类:不能申明子类 final方法:防止子类方法重载 final域、final变量:值只能够分配一次,不能更改 |
注:域指的是类中定义的变量
类的构造器方法不能够有修饰符、返回类型和throws子句
普通类的访问修饰符只有public和default
此外,方法修饰符还有synchronized、native,变量修饰符还有volatile、transient,这些涉及到java更深的层次,有兴趣的可以自己去了解它们。