1、final修饰类
表示该类是最终类,不能被继承
System/String/Scanner等就是final修饰的类
2、final修饰字段
字段(Field),也叫成员变量,包括实例变量与静态变量
1)final修饰的字段必须赋值,可以在定义final字段时就赋值,也可以在构造方法中赋值
2)final修饰的字段不能再重新赋值
3)一般情况下final与static是同时使用的,final字段所有字母都大写,称final常量
赋值形式可以如下:
3、final修饰方法
final修饰方法,表示最终方法,不能被子类重写,但能被子类继承
4、final修饰局部变量与引用类型变量
public class Test03 {
public static void main(String[] args) {
int x;//局部变量
x = 1;
x = 2;
final int y;
y = 1;
//y = 2; //final修饰局部变量,一旦初始化就不能再修改
Person02 p1 = new Person02("name",21);
final Person02 p2 = new Person02("name02", 22);
//final关键字修饰的是p2变量,是不能给p2变量赋值
//p2变量不能再指向其他对象
//p2 = p1;
//p2 = new Person02("name03",23);
//可以修改他的字段
p2.name = "123";
}
}
public class Person02 {
String name;
int age;
public Person02(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person02 [name=" + name + ", age=" + age + "]";
}
}
5、总结
1.final是一个关键字,可以修饰类,修饰字段,修饰方法,修饰局部变量,修饰形参
2.final修饰类表示最终类,不能被继承
3.修饰字段,必须显示初始化,不能再修改,一般情况下final与static同时修饰某个字段,所有字母都大写时,称为final常量
4.final修饰方法,不能被子类重写,但能够被子类继承
5.final修饰局部变量,一旦初始化就不能再修改,注意final修饰引用类型变量,是指这个引用类型变量不能再指向其他对象,可以修饰他的属性值
6.修饰方法形参,在方法体中不能修改final形参的值