在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

支持多线程