P195 final关键字概念
常见的四种用法:
修饰一个类(1):
1、不能有子类
2、它的成员方法不能被覆盖重写
修饰一个方法(2):
- 不能覆盖重写【父类当中final的方法】
父类中:
public final void method(){
...}
一个方法被final修饰,这个方法就是最终方法,不能被覆盖重写
public abstract final void method()//会报错!!
因为abstract必须被重写,而final不能被重写
P198 final修饰【局部变量】(3)
final int num=200;//正确写法
//num=222;//错误
//num=200;//也是错误的,只能赋值一次!!
final int num2;
num2=200;//正确写法
此类一次赋值,终生不变
对于基本类型:变量当中的【数据值】不可改变
对于引用类型:变量当中的【地址值】不可改变(但是内容可以变啊!
引用类型:地址值不可以改变,但是地址指向的内容可以改变
- 改变地址:如new Student时就改变了地址值
P199 final修饰【成员变量】(4)
使用final关键字修饰,这个变量也照样不可变
由于变量具有默认值,用了final之后必须【手动赋值】,这样之后不会再给默认值
用了直接赋值就不要再用构造方法为其赋值!
person类中:
private final String name="杨淇雅";
public Person(String name){
this.name=name;//用传入的参数为name再赋值,错误写法!
}