final关键字
防止更改API当中的类,所以有final关健字,用于修饰不可改变的内容
3.1修饰类格式
public final class 类名{ //类信息 } String,Math,Scanner等API类都是被final修饰的,目的是让我们仅仅使用,而不能修改
3.2修饰方法
修饰符 final 返回值类型 方法名(参数列表){ //方法体内容.... } 不能重写final修饰的方法,编译无法通过
3.3修饰变量
3.31局部变量--基本类型
基本类型的局部变量,被final修饰后,只能赋值一次,不能被更改。
public class Demo { public static void main(String[] args){ //声明局部变量 final int num; //第一次赋值 num = 10; //第二次赋值 num = 20;//编译报错 } }
3.32局部变量--引用类型
引用类型的局部变量被final修饰后,只能指向一个对象,地址值不能发生改变,但是不影响对象内部的成员变量的修改。(set修改)
public class FinalDemo2 { public static void main(String[] args) { // 构建一个对象 final People p1 = new People(); p1 = new People();// 报错,编译无法通过 // 调用setName()方法 p1.setName("小王");// 可以修改 } }
3.33成员变量
成员变量涉及到【初始化】的问题,初始化方式有两种,二选其一:
直接初始化: public class People { final String NAME = "小王"; private int age; }
构造方法初始化。 public class People { final String NAME; private int age; public People(String name) { this.name = name; } }
被final修饰的常量名称,一般都有书写规范,所有字母均为【大写】。