Java语言定义了public、protected、private、abstract、static和final这6常用修饰词外还定义了4个不太常用的修饰词,下面是对这10个Java修饰词的介绍:
1.public
适用对象:类、接口、成员。
介绍:无论所属的包定义在哪,该类(接口、成员)都是可访问的。
2.private
适用对象:成员。
介绍:成员只可以在定义它的类中被访问。
3.static
适用对象:类、方法、变量、初始化函数。
介绍:static修辞的内部类是一个顶级类,它和类包含的成员是不相关的。静态方法是类方法,被指向到所属的类而不是类的实例。静态变量是类变量,无论该变量所在的类创建了多少实例,该变量只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的。
4.final
适用对象:类、方法、变量。
介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),变量值不允许被修改。
5.abstract
适用对象:类、接口、方法。
介绍:abstract类中包括没有实现的方法,不能被实例化。abstract方法的方法体为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类。
6.protected
适用对象:成员。
介绍:protect成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类必须是该成员所属类的子类。
7.native
适用对象:成员。
介绍:与操作平台相关,定义时并不定义其方法,方法被一个外部的库实现。
8.synchronized
适用对象:方法。
介绍:对于一个静态的方法,在执行之前JVM把它所在的类锁定;对于一个非静态类的方法,执行前把某个特定对象实例锁定。
9.volatile
适用对象:变量。
介绍:因为异步线程可以访问变量,所以有些优化操作是一定不能作用在变量上的。volatile有时可以代替synchronized。
10.transient
适用对象:变量。
介绍:变量不是对象持久状态的一部分,不应该把变量和对象一起串起。