[Java手记]Java常见的修饰符
1、访问修饰符
修饰符 | 说明 |
---|---|
public | 对所有类可见。使用对象:类、接口、变量、方法 |
protected | 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。 |
default | 即默认,什么也不写;在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 |
private | 私有;在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) |
修饰符 | 当前类 | 同一包内 | 父子类/不同包 | 其他类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √/× | × |
default | √ | √ | × | × |
private | √ | × | × | × |
2、非访问修饰符
2.1 static 修饰符
静态变量:static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。
静态方法:static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。
2.2 final 修饰符
final在变量中:
final 表示"最后的、最终的、最底层"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。final 修饰符通常和 static 修饰符一起使用来创建类常量。final在方法中:
父类中的 final 不能被继承,不能被子类重写,不能改变值。声明 final 方法的主要目的是防止该方法的内容被修改。
2.3 abstract 抽象修饰符
在父类中抽象方法不可以写方法体,子类可以引用父类抽象方法,但需要在子类重写方法体,实际操作中用于规范书写。
抽象方法不能被声明成 final 和 static
2.4 synchronized 修饰符
synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。
2.5 transient 修饰符
序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。