Java語言基礎:final和static – JAVA編程語言程序開發技術文章

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

發佈留言