关键字:final
- 在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。
- final标记的类不能被继承。提高安全性,提高程序的可读性。
String类、System类、StringBuffer类 - final标记的方法不能被子类重写。
比如:Object类中的getClass()。 - final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。
- final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋 值,然后才能使用。
final double MY_PI = 3.14;
final修饰类
final class A{ }
class B extends A{ //错误,不能被继承。 }
final修饰方法
class A {
public final void print() {
System.out.println("A");
}
}
class B extends A {
public void print() {
// 错误,不能被重写。
System.out.println("中国");
}
}
final修饰变量——常量
常量名要大写,内容不可修改。
class A {
private final String INFO = "zhongguo";
//声明常量
public void print() {
//The final field A.INFO cannot be assigned
//INFO = "中国";
}
}
static final:全局常量
public final class Test {
public static int totalNumber = 5;
public final int ID;
public Test() {
ID = ++totalNumber;
// 可在构造器中给final修饰的“变量”赋值
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.ID);
final int I = 10;
final int J;
J = 20;
J = 30; // 非法
}
}
关键字:finally
- 捕获异常的最后一步是通过finally语句为异常处理提供一个 统一的出口,使得在控制流转到程序的其它部分以前,能够 对程序的状态作统一的管理。
- 不论在try代码块中是否发生了异常事件,catch语句是否执行,catch语句是否有异常,catch语句中是否有return, finally块中的语句都会被执行。
- finally语句和catch语句是任选的
/*
try{
//需要被检测异常的代码
}
catch(异常类 常量)//该变量用于接收发生的异常对象
{
//处理异常的代码
}
finally
{
//一定会被执行的代码
}
*/