一、static修饰符
static修饰符可以修饰变量、方法或代码块
用static修饰的变量叫静态变量。
静态变量有如下注意事项:
- 类中的静态变量属于类,而不属于某个特定的对象。
- 类的静态成员可以与类的名称一起使用,而无须创建类的对象。(可以直接通过类名来访问静态变量,建议使用类名来调用静态变量)
- 静态变量或方法也称为类的变量或方法。
- 不管创建了类的多少实例,整个类中静态变量的副本只有一个,声明为static的变量实质上就是全局变量。
静态方法
- 类的静态方法只能访问其他的静态成员,不能访问非静态成员。
- 静态方法中没有this关键字。
- 静态方法不能被覆盖(重写)为静态方法。
静态代码块
静态代码块是由static和{}组成的代码片段
静态代码块使用时有如下注意事项:
- 如果需要通过计算来初始化静态变量,可以声明一个静态块。
- 静态块仅在该类被加载时执行一次。
- 只能初始化类的静态数据成员。
二、final修饰符
final修饰符可修饰类、方法和变量。final在修饰类、方法和变量时表示的意义是不同的,但本质是一样的,即final表示不可改变。
final修饰类
- final修饰的类不能被子类继承。
final修饰方法时,有如下规定:
- 使用在方法声明中使用final关键字向编译器表明子类不能覆盖此方法。
- 使用在声明类中,一个final方法只能被实现一次。
- 使用如果一个类为final类,那么它的所有方法都为隐式的final方法。
final修饰变量
- 一个变量可以声明为final,这样的目的是阻止它的内容被修改。
- 声明final变量后,变量只能被初始化一次,然后就不能对其值进行修改了,一个final变量实质上是一个常量。
三、abstract修饰符
abstract修饰符用来修饰类和方法,使用abstract修饰符有如下规则:
- 修饰的类即为抽象类,不能被实例化。
- 构造方法和static方法不能是抽象的。
- 父类的抽象方法往往在子类中实现,抽象类可以具有指向子类对象的对象引用。
抽象类中的方法既可以是具体方法也可以是抽象方法,但一个类中如果有抽象方法那么这个类一定是抽象类。
四、接口
其实接口就是一套规范。
在Java中,使用interface关键字来定义接口,接口中的方法都只有声明,没有方法主体,也可以理解为接口中只能有抽象方法。接口就是用来被子类实现的,这样可以让不同的子类遵守相同的规范,但却又有自己的实现。