Java語言基礎:final和static

來源:互聯網
上載者:User

 

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;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.