版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/85058585
final概述
final可以修饰类,方法和变量。
特点
(1)final可以修饰类,该类不能被继承。
(2)final可以修饰方法,该方法不能被重写。
(3)final可以修饰变量,该变量不能被重新赋值。因为这个变量为常量。
final修饰局部变量的问题
基本数据类型:基本数据类型的值不能发生改变。
引用数据类型:引用数据类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的。
package duixiang;
class StudentTest {
int age = 10;
}
public class FinalTest {
public static void main(String[] args) {
//局部变量是基本数据类型
int x = 100;
x = 1000;
System.out.println(x);
final int y = 10;
//无法为最终变量y分配值
//y=100;
System.out.println(y);
System.out.println("-----------------");
//局部变量是引用数据类型
StudentTest s = new StudentTest();
s.age = 100;
System.out.println(s.age);
final StudentTest s1 = new StudentTest();
s1.age = 300;
System.out.println(s1.age);
}
}
执行结果如下:
final修饰变量的初始化时机
(1)被final修饰的变量只能赋值一次。
(2)再构造方法完毕前。(非静态的常量)