java关键字——final关键字
final关键字
final修饰类
用final修饰的类为是最终类,最终类不能被继承
Father为父类(没有final修饰)
/*
* 1.final修饰类
* 表示该类是最终类,最终类不能被继承
* System/String/Scanner就是final修饰的类
* */
public class Father {
}
Son为子类
public class Son extends Father {
}
final修饰字段
字段(Filed),也叫成员变量,包括实例变量和静态变量两大类
(1)final修饰的字段必须显示的赋值,经常在定义final字段的同时就赋值
(2)final修饰的字段不能再重新赋值
(3)一般情况下final与static都是同时使用,final字段所有字母都大写,称为final常量
final int zz=2;//经常在定义时显示赋值
final int t;
public Father2(){
t=3;//在构造方法中赋值
}
final static int qq=7;
final static int p;
static { //静态代码块
p=5;
}
final修饰方法
final修饰的方法:不能被子类重写,但是可以被继承
final修饰局部变量
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x;
x=10;
x=101;
final int y;//final局部变量,一旦初始化就不能再修改
y=20;
//y=202;
Person p1=new Person("lisi", 11);
final Person p2=new Person("zhangsan", 20);
//final关键字修饰的是p2变量,是不能给p2变量赋值
//p2变量不能再指向其他变量
//p2=p1;
//p2=new Person("wang", 22);
//可以修改它的字段
p2.name="lisisi";
}
final修饰方法形参
final修饰方法形参时,在方法体中不能修改final形参的值
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
m1(10, 20); //在调用方法时,就会给final形参初始化
}
public static void m1(int x,final int y){
//final修饰方法形参时,在方法体中不能修改final形参的值
x=666;
//y=99;
}
}