文章摘要:java有几种修饰符
java的修饰符有很多种,但是有不少小伙伴是不知道的,所以下面小编给大家介绍java修饰符有哪些,一起来看看吧 […]
java的修饰符有很多种,但是有不少小伙伴是不知道的,所以下面小编给大家介绍java修饰符有哪些,一起来看看吧。
java修饰符类型
一、 类修饰符
1.访问修饰符:公共类修饰符public。公共类修饰符 public : Java 语言中类的访问控制符只有 public 即公共的。每个 Java程序的有且只有一个类是 public,它被称为主类,其他外部类无访问控制修饰符,具有包访问性。注意:一个类的内部类可以被其他访问控制修饰符protected、default、private修饰,相当于类的成员。
2.非访问控制符:抽象类修饰符 abstract 、最终类修饰符 final。
(1)抽象类修饰符 abstract :用 abstract 修饰符修饰的类,被称为抽象类。
(2)最终类修饰符 final :当一个类不能被继承时可用修饰符 final修饰为最终类。被定义为 final的类通常是一些有固定作用、用来完成某种标准功能的类。
(3)类缺省访问控制符:如果一个类没有访问控制符,说明它具有缺省的访问控制符特性。此时,这个类只能被同一个包中的类访问或引用。这一访问特性又称为包访问性。
二、方法修饰符
1.访问控制修饰符。公共访问控制符public、保护访问控制符protected、缺省默认default、私有访问控制符private
2.非访问控制修饰符。抽象方法控制符abstract 、静态方法控制符static 、最终方法控制符final 、本地方法控制符native、同步方法控制符synchronized
三、变量修饰符
1.访问控制符。公共访问控制符public 、保护访问控制符protected 、缺省默认访问控制符default、私有访问控制符private。
2.非访问控制符。静态域修饰符static 、最终域修饰符 final 、易失 ( 共享 ) 域修饰符volatile、暂时性域修饰符transient。
四、访问控制修饰符
注意:protected修饰的属性或方法,允许不同包的子类中访问。注意这里的访问方式是通过继承访问父类中的protected属性或方法,而不是直接通过父类实例访问protected属性或方法。
java修饰符的作用
final修饰符:它的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
abstract修饰符:它是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
static修饰符:static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。
volatile修饰符:易失 ( 共享 ) 域修饰符 volatile :易失 ( 共享 ) 域修饰符 volatile是用来说明这个成员变量可能被几个线程所控制和修改。也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。因此,在使用中要注意这种成员变量取值的变化。通常volatile 用来修饰接受外部输入的域。
transient修饰符:暂时性域修饰符 transient :暂时性域修饰符 transient 用来定义一个暂时性变量。其特点是:用修饰符transient 限定的暂时性变量,将指定 Java虚拟机认定该暂时性变量不属于永久状态,以实现不同对象的存档功能。否则,类中所有变量都是对象的永久状态的一部分,存储对象时必须同时保存这些变量。
java修饰符的作用范围
Private。被private修饰的属性和方法,不能被其他类访问,子类不能继承也不能访问。只能在所在类内部访问。
缺省。变量或者方法前没有访问修饰符时,可以被所在类访问,可以被同一包内的其他类访问 或者继承。但是不能被其他包访问。
Protected。被protected修饰的方法和属性,在同一包内可被访问和继承。不同包内,子类可继承,非子类不能访问。
Public。方法和属性前有public修饰,可以被任意包内的类访问。
另外,类要想被其他包导入,必须声明为public。被public修饰的类,类名必须与文件名相同。