Java中被final修饰的变量为常量,它只能被赋值一次,也就是说final修饰的变量一旦被赋值,其值不能改变。如果再次对该变量进行赋值,则程序会在编译时报错。
public class Example { public static void main(String[] args) { final int num = 100; num = 4; } }
编译程序报错
当第4行对num 赋值时,编译报错。原因在于变量num 被final修饰。由此可见,被final修饰的变量为常量,它只能被赋值一次,其值不可改变。
被final关键字修饰的变量为局部变量。
class Student { final String name; public void introduce() { System.out.println("我是一名学生,我的名字叫" + name); } } public class Example { public static void main(String[] args) { Student student = new Student(); student.introduce(); } }
出现了编译错误,提示变量name没有初始化。这是因为使用final关键字修饰成员变量时,虚拟机不会对其进行初始化。因此使用final修饰成员变量时,需要在定义变量的同时赋予一个初始值,下面将第2行代码修改为:
final String name="小海绵"; //为final 关键字修饰的name 属性赋值
运行结果:
我是一名学生,我的名字叫小海绵