1. final final可以修飾類,成員方法,成員變量;表示最終的,不能修改,不能繼承的: •final類不能被繼承,類中的方法默認(rèn)是final方法,但類中的成員變量不是。 •final方法不能被子類覆蓋,可以這樣理解:JAVA中的普通方法等于C++的虛方法,JAVA中的final方法等于C++中的普通方法。 •final成員表示常量,只能在聲明時(shí)賦值一次,以后不能再被賦值。 public class Test { private final String S="final實(shí)例變量"; private final int A=10; } •final函數(shù)參數(shù)表示該參數(shù)為常量,不能在函數(shù)中改變: public void f1(final int i){ i++; //錯(cuò)誤:i是final類型的,值不允許改變 System.out.print(i); } 2. static static表示全局靜態(tài),用來修飾成員方法,成員變量,可以形成static代碼塊: •static方法與c++的靜態(tài)方法類似,不必創(chuàng)建類實(shí)例即可使用,不能使用this和super關(guān)鍵字,且只能訪問類中的static成員或static方法。 •static成員變量與C++的靜態(tài)成員類似,為所有類實(shí)例共用,注意JAVA沒有局部靜態(tài)變量。 public class Main { static int i = 100; } •static靜態(tài)代碼塊,是在JVM加載類時(shí)就執(zhí)行的代碼塊,只執(zhí)行一次,可以用來初始化靜態(tài)變量: public class Main { static int i = 100; static { i = 30; } public static void main(String[] args) { // 此處i應(yīng)該是30 System.out.println(i); } } 3. final和static一起使用 類似于C++的全局常量: static final int j = 200 |