fianl:最终的意思。它可以修饰类、成员变量、成员方法。
特点:
1、修饰类,类不能被继承
2、修饰成员变量,变量变常量,并且只能赋值一次,在构造方法完毕之前赋值即可
常量
字面值常量;
被final修饰的变量变成自定义常量;
3、final修饰成员方法,成员方法不能被重写;
class Fu4{
int num1 = 10;
// final int num2 = 200;
final int num2;
// {
// num2 = 400;
// }
Fu4(){
num2 = 400;
}
}
class Zi4 extends Fu4{
public void show(){
int num1=100;
System.out.println(num1);
System.out.println(num2);
}
}
public class Final1 {
public static void main(String[] args) {
Zi4 zi4=new Zi4();
zi4.show();
// 100
// 400
}
}
面试题:
final修饰局部变量
1、在方法内部,修饰基本类型的数据变量,变量值只能赋值一次,不能发生改变。
2、当final修饰的是引用数据类型的值时,引用的地址不可发生改变,但是该对象堆内存的值可以改变
class Pig{
int age=10;
}
public class Final2 {
public static void main(String[] args) {
int x=20;
x=30;
System.out.println(x);
// 30
final int y=200;
System.out.println(y);
// 200
Pig pig=new Pig();
System.out.println(pig.age);
// 10
final Pig pig1=new Pig();
System.out.println(pig1.age);
// 10
pig1.age=1000;
System.out.println(pig1.age);
// 1000
}
}