天天看點

5分鐘讓你深入了解Java中的final關鍵字,從底層開始入手

作者:KJ丶JK

一、什麼是final關鍵字?

final是最終的意思,可以修飾類,方法,變量           

二、final 修飾的特點

修飾類:表明該類是最終類,不能被繼承

修飾方法: 表明該方法是最終方法,不能被重寫

修飾變量: 表明該變量是常量,變量第一次指派後,不能再次被指派(有且隻能指派一次)           

三、final修飾變量的注意

* 變量是基本類型:指的是基本類型的"資料值"不能發生改變。

* 變量是引用類型:指的是引用類型的"位址值"不能發生改變,但是位址裡面的内容是可以發生改變的。(位址值不能變,資料值可以變)

* 修飾局部變量時可以先定義後指派,
修飾成員變量時必須定義時完成指派或者在構造方法中指派

引用資料類型有: 類,接口,數組,枚舉           

四、案例講解

1.案例(修飾類)

final class Father extends Test{
//目的:為了代碼安全
//final修飾的類不能被繼承(沒有子類),可以繼承别人
}
class son extends Father{ //報錯
}           

執行效果

5分鐘讓你深入了解Java中的final關鍵字,從底層開始入手

2.案例(修飾方法)

class Father {
public final void run(){ //final修飾的方法不能被重寫
//可以被子類去用,但不能被重寫
}
}
class Son extends Father{
@Override
public void run(){ //報錯
}
}           

執行效果

5分鐘讓你深入了解Java中的final關鍵字,從底層開始入手

3.案例(修飾基本資料類型變量)

public class Test2 {
public static void main(String[] args) {
//變量是基本類型的
final int a=19; //被final修飾後不是變量了,是常量隻能被指派一次,後面再指派會報錯
a=18; //第二次指派報錯
method(20); //第一次賦資料值
}
public static void method(final int b){
b=200; //第二次賦資料值報錯
}
}           

執行效果

5分鐘讓你深入了解Java中的final關鍵字,從底層開始入手

4.案例(修飾引用資料類型變量)

//變量是引用資料類型的
final int [] arr={11,22,33};
arr[0]=110; //修過裡面的内容不報錯
arr=new int[10]; //第二次賦予位址值報錯


final Student stu=new Student();
stu.age=100; //stu.age為位址值裡面的内容,這個是可變得
System.out.println(stu.age); //age=100
stu=new Student(); //第二次賦予位址值報錯           

執行效果

5分鐘讓你深入了解Java中的final關鍵字,從底層開始入手

作者:今日頭條 KJ丶JK /CSDN-KJ.JK