JAVA语言中各种修饰符modifier

修饰符简介

像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。比如在Java类中定义方法:

JAVA中修饰符的类别

主要有两类修饰符如下:

(1)访问控制修饰符

a)public

修饰的目标对所有类或者对象都是可见的,所有类或者对象都可以直接访问。修饰目标有类、接口、变量、方法。

b)protected

修饰的目标对类自身,以及同在一个包中的其他类可见,其他包下的类不可访问(除非是他的子类)。修饰目标有变量、方法。 但是不能修饰类(外部类)。

c)default

即缺省,什么也不写。

修饰的目标只有类自身,以及同在一个包的其他类可见,其他包内的类不能访问,即便是它的子类也不能访问。修饰目标有类、接口、变量、方法。

d)private

修饰的目标是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限,子类也没有访问权限。修饰目标有变量、方法。 但是不能修饰类(外部类)。

备注:访问控制修改符修改的目标,权限由大到小,依次是public,protected,default和private。

(2)非访问控制修饰符

a)static

修饰方法,使之成为类方法/静态方法;修饰变量,使之成为类变量/静态变量。

b)final

修饰变量,使之成为常量;修饰方法,使之XXX;修饰类,使之XXX

c)abstract

修饰类,使之成为抽象类;修饰方法,使之成为抽象方法

d)synchronized

e)transient

Java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。这里的对象存储是指,Java的serialization提供的一种持久化对象实例的机制。

简单点说,就是被transient修饰的成员变量,在序列化的时候其值会被忽略,在被反序列化后,transient变量的值被设为初始值,如int型的是0,对象型的是null。

f)volatile