关键字Final和Finally

关键字:final

  • 在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。
  1. final标记的类不能被继承。提高安全性,提高程序的可读性。
    String类、System类、StringBuffer类
  2. final标记的方法不能被子类重写。
    比如:Object类中的getClass()。
  3. final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。
  4. 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
{
//一定会被执行的代码
}
*/

区别:
被声明为final的方法不能在子类中被重写。
Finally是通常放在try…catch…的后面,finally块中的代码总能执行,这就意味着程序无论正常执行还是发生异常,这里的代码只要是JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值