在Java中可以使用的修饰符的地方应该有类、接口、变量、方法这三种,而修饰符一般可分为:访问修饰符、修饰符。
类的修饰
访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称
访问修饰符
名称 | 说明 | 备注 |
public | 可被所有类进行访问 | |
缺省默认 | 可被同一包的其他类进行访问 |
修饰符
名称 | 说明 | 备注 |
abstract | 表名为抽象类 | 类中有abstract方法必然是抽象类,抽象类不一定有abstract方法,抽象类只能被继承不能被实例化 |
finaly | 不能被继承的类 |
接口的修饰
访问修饰符
名称 | 说明 | 备注 |
public | 可被所有类进行访问 | 如不能被其他类实现,那么接口就失去了意义 |
修饰符
名称 | 说明 | 备注 |
abstract | 默认且唯一,接口仅仅描述能做什么,但不指明如何去做,所以接口中的方法都是抽象的 | 接口的变量修饰符默认且唯一为public static final |
变量的修饰
实例变量(非静态变量)、类变量(静态变量)
访问修饰符
名称 | 说明 | 备注 |
public | 可被所有类进行访问 | |
private | 只能被当前类进行访问 | |
protected | 只能被当前包的类访问,可以被子类进行访问 | 子类不在同一包下也可以访问 |
缺省默认 | 可被同一包的其他类进行访问 | 子类不在同一包下不能访问 |
修饰符
名称 | 说明 | 备注 |
static | 类变量、静态变量 | 可以被类的所有实例共享,并不需要创建类的实例就可以访问静态变量 |
finaly | 不可变的常量 | |
transient | 告诉编译器,在类对象序列化时,此变量不需要持久保存 | 序列化:将某一个类存储以文件形式存储在物理空间,下次再从本地还原的时候,还可以将它转换回来。PS序列化只保存对象的非静态成员交量 |
volatile | 指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理 |
方法的修饰
访问修饰符 修饰符 返回类型 方法名称(参数列表)throws 异常列表
访问修饰符
名称 | 说明 | 备注 |
public | 可被所有类进行访问 | |
private | 只能被当前类进行访问 | |
protected | 只能被当前包的类访问,可以被子类进行访问 | 子类不在同一包下也可以访问 |
缺省默认 | 可被同一包的其他类进行访问 | 子类不在同一包下不能访问 |
修饰符
名称 | 说明 | 备注 |
static | 类方法、静态方法 | 可以被类的所有实例共享,并不需要创建类的实例就可以访问 |
finaly | 不可被重写的方法 | 可以被重载 |
abstract | 声明但不实现的抽象方法 | 不能将static方法、final方法或者类的构造器方法声明为abstract |
native | 用该修饰符定义的方法在类中没有实现,而大多数情况下该方法的实现是用C、C++编写的 | |
synchronized | 支持多线程 |