final:
不可改变的。可以用于修饰类,方法和变量。
当final修饰类时,被修饰的类不可被继承;当fianl修饰方法时,被修饰的方法不可被重写;当final修饰变量时,被修饰的变量不能被重新赋值。
使用方式
修饰类: public final class 类名{}
修饰方法:修饰符 final 返回值类型 方法名(参数列表){}
修饰变量:
1.基本类型局部变量被final修饰后,只能赋值一次,不能再更改。
2.引用类型局部变量被final修饰后,只能指向一个对象,地址不能再更改,但是不影响对象内部的局部变量的修改。
public class FinalDemo2 {
public static void main(String[] args) {
// 创建 User 对象
final User u = new User();
// 创建 另一个 User对象
u = new User(); // 报错,指向了新的对象,地址值改变。
// 调用setName方法
u.setName("张三"); // 可以修改
}
}
成员变量:成员变量涉及到初始化的问题,初始化方式有两种,只能二选一:
显示初始化
public class User{
final String USERNAME ="血小板";
}
构造方法初始化
public class User {
final String USERNAME ;
public User(String username) {
this.USERNAME = username;
}
}
注:被final修饰的常量名称,一般都有书写规范,所有字母都大写。