JAVA中的final关键字
- final 是一个关键字,表示最终的,不可更改的
- final 修饰的类无法被继承
public final class Final { //创建一个用于继承的类
public void test(){
System.out.println("测试成功");
}
}
- final 修饰的方法无法被覆盖/重写
public class Final { //创建一个用于继承的类
public final void test(){
System.out.println("测试成功");
}
}
- final 修饰的变量一旦被赋值之后,不可重新赋值【不可二次赋值】
5. final 修饰的实例变量,必须手动赋值,不能采用系统默认值
public class Final {
//第一种方法:创建变量时手动赋值
final int i = 10 ;
//第二种方法:通过构造方法赋值
final int j;
public Final (){
this.j = 20;
}
}
- final 修饰的实例变量是不可变的,这种变量一般和 static 联合使用,称为 “常量”
常量的定义语法格式:
public static final 类型 常量名 = 值;
java规范要求所有常量的名字全部大写,每个单词用下滑线连接
public class Final {
public static final double PI = 3.1415926;
public static final String GUO_JI = "中国";
}
- final 修饰的引用,一旦指向某个对象之后,不可再指向其他对象。那么已经被指向的对象无法被垃圾回收器回收
public class Final {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Final(String name) {
this.name = name;
}
public Final() {
}
}
- 已指向的对象内存是可以被更改的
public class FinalTest extends Final{
public static void main(String[] args){
final Final f = new Final("Jack");
f.setName("Tom");
}
}