1.final關鍵字
基本介紹
final中文意思:最后的,最終的
final可以修飾類、屬性、方法和局部變量
在某些情況下,程序員可能有以下需求,就會使用到final
- 當不希望類被繼承時,可以用final修飾
- 當不希望父類的某個方法被子類覆蓋/重寫(override)時,可以用final關鍵字修飾【訪問修飾符 final 返回類型 方法名】
- 當不希望類的的某個屬性的值被修改,可以用final修飾【案例演示: public final double TAX_RATE=0.08】
- 當不希望某個局部變量被修改,可以使用final修飾【案例演示: final double TAX_RATE=0.08】
final使用注意事項和細節討論
1.final修飾的屬性又叫常量,一般用XX_XX_XX來命名(大寫命名)
2.final修飾的屬性在定義時,必須賦初值,并且以后不能再修改,賦值可以在如下位置之一【選擇一個位置賦初值即可】
- 定義時:如 public final double TAX_RATE=0.08
- 在構造器中
- 在代碼塊中
3.如果final修飾的屬性是靜態的,則初始化的位置只能是
- 定義時
- 在靜態代碼塊 不能在構造器中賦值
4.final類不能繼承,但是可以實例化對象
5.如果類不是final類,但是含有final方法,則該方法雖然不能重寫,但是可以被繼承
6.一般來說,如果一個類已經是final類了,就沒有必要再將方法修飾成final方法
7.final不能修飾構造方法(即構造器)
8.final和static往往搭配使用,效率更高,不會導致類加載,底層編譯器做了優化處理
9.包裝類(Integer,Double,Float,Boolean等都是final),String也是final類
final練習題
package com.logic.final_;//計算圓的面積
public class FinalExercise01 {public static void main(String[] args) {System.out.println(Circle.calArea(12));}
}class Circle {private static double radius;private final static double PI = 3.14;public static double calArea(double radius) {return radius * radius * PI;}
}