final表示最后的、最终的、终端的。在java 语言中主要用在以下4中情况。
1.final关键字修饰成员变量
在java中,如果想将一个变量定义为常量,该变量就用关键字final修饰。用final修饰的变量系统就不会为其添加默认值,必须显式赋值或在构造方法里初始化变量,一旦给final变量赋初值后,其值就不能改变。
示例:
public class Test{ final int i; public Test(){} public void printMess(){ System.out.println("i="+i); } }
2.final修饰局部变量
在java中,当final修饰局部变量时,可以读取使用该变量的值,但不可以改变该变量的值。
示例:
public class Test{ public int pulsOne(final int x){ return ++x; //将x的值加1并返回 } }
3.final关键字修饰方法
在java中,如果某个方法只想被子类继承,不想被子类重写,就将该方法用final修饰。用final修饰的方法称为最终方法。
示例:
public class Test{ public final void printInfo(){ System.out.println("该方法不能被重写"); } } public class SubFinal extends Test{ public final void printInfo(){ System.out.pringln("子类对父类中的final方法重写"); } }
编译将会出错,不能被重写。注:被static或private修饰的方法默认为final类型。
4.final关键字修饰类
在java中,设计类的时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会扩展,那么就将该类设计为final类。用final修饰的类,表示该类不能被继承,该类被称为最终类或终极类,该类中的成员方法默认都是final。