转载

final关键字

[TOC]

关键字final

java中 final 关键字在不同的场景下,有不用的用法,但是都是表达相同的意思即 不能被改变 。接下来,详细的讲解 final 修饰 datamethodsclass 的用法。

final修饰data

java中 final 修饰的数据分为 compile-time constantrun-time constant

public class Final {  private final int a = 1; //compile-time constant  private final int b = rand.nextInt(20); //run-time constant  public void test(){   a = 3; //Error: compile-time constant   b = 4; //Error: run-time constant  } } 

final修饰 blank , final 修饰的数据如果在定义时没有给定初值,必须在构造方法中给定初值,这样就能保证在使用对象时, fianl 修饰的数据已经有初值,并且不会改变。

public class BlankFinal{  private final int j; // Blank final  private final String s // Blank final reference  public BlankFinal(){   j = 1;   p = new String();  } } 

final修饰 参数

final修饰的 primitives 以及 reference 参数在函数的内部不允许被修改。

final修饰method

final修饰 method 从设计和性能两方面考虑;从设计上考虑,为了确保一个 method 的功能不会被子类修改,可以使用 final 修饰,子类不能覆盖 final 修饰的 method ;从功能上考虑, final 修饰的 method 会被当成 inline calls

final修饰class

final修饰的 class 不能再被继承

正文到此结束
Loading...