Java修饰符用来修饰类、方法或者变量,放在语句的最前端,可以分为以下三类:
| 修饰词 | 功能说明 | 使用对象 |
1.访问修饰符 (可见即可访问) | default | 默认访问修饰符,在同一包内可见,不使用任何修饰符。 | 类、接口、变量、方法 |
private | 私有访问修饰符,在同一类内可见。 | 变量、方法 | |
public | 公有访问修饰符,对所有内可见 | 类、接口、变量、方法 | |
protected | 受保护的访问修饰符,对同一包内的类和所有子类可见。 | 变量、方法 | |
2.非访问修饰符 | static | 静态修饰符,独立于对象:
| 类变量(局部变量不能被声明为static)、方法 |
final | ①final变量:被final修饰的实例变量必须显式指定初始值,变量一旦赋值,不能被修改,通常和static一起使用来创建类常量。 ②final方法:父类中的final方法可以被子类继承,但不能被子类重写,声明的目的是防止该方法的内容被修改。 ③final类:不能被继承 | 类、方法和变量 | |
abstract | ①抽象类:不能用来实例化对象,目的是为了将来对该类进行扩充。不能同时被final修饰,可以不包含抽象方法。 ②抽象方法:是一种没有任何实现的方法,方法的实现由子类提供,且必须提供,除非子类也是抽象类。包含抽象方法的类必须声明为抽象类。 | 类、方法 | |
3.线程的编程修饰符 | synchronized | 修饰的方法同一时间只能被一个线程访问。 | 方法 |
volatile | 修饰的变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值;当成员变量发生变化时,会强制线程将变化值回写到共享内存。 | 变量 | |
transient | 修饰的实例变量,JVM跳过该特定的变量。 | 变量 |