Java中的final关键字
使用 final 关键字做标识有 “最终的” 含义。
final 可以修饰 类、方法、属性、变量
final 修饰类: 则该类不允许被继承
final 修饰方法:则该方法不允许被重写
final 修饰属性:
则该类的属性不会进行隐式的初始化 (类的初始化属性必须有值)或在构造方法中赋值 (两者选其一)
修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变
修饰的属性表明是一个常数(创建后不能被修改)
final 修饰变量:则该变量的值只能赋值一次,即变量为常量
Java中的static关键字
使用 static 关键字做标识有 “静态” 含义。
static 可以修饰 属性、方法、代码段、内部类(静态内部类或嵌套内部类)
static 修饰的属性:
初始化在编译期(类加载的时候),初始化后能被修改
修饰的属性所有对象都只有一个值
修饰的属性强调它们只有一个
static 修饰的属性、方法、代码段跟该类的具体对象无关,不创建对象也能调用static修饰的属性、方法等
static 和“this、super”势不两立,static跟具体对象无关,而this、super正好跟具体对象有关
static 不能修饰局部变量
static final 和 final static
static final 和 final static 没有什么区别,只是通常的书写方式为 static写在前面
static final
static 修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改);
static final修饰的属性表示一旦给值,就不可修改,并且可以通过类名访问。
static final也可以修饰方法,表示该方法不能被重写,可以在不new对象的情况下调用。