Java 靜態(tài)final

2021-11-16 16:04 更新

Java教程 - Java靜態(tài)final


Java靜態(tài)關(guān)鍵字

靜態(tài)類成員可以獨(dú)立于該類的任何對象使用。

靜態(tài)成員可以自身使用,而不參考特定實(shí)例。

這里展示了如何聲明 static 方法和 static 變量。

static int intValue;

static void aStaticMethod(){
}

限制

聲明為靜態(tài)的方法有幾個(gè)限制:

  • 它們只能調(diào)用其他靜態(tài)方法。
  • 它們只能訪問靜態(tài)數(shù)據(jù)。
  • 他們不能以任何方式引用this或super。

類的所有實(shí)例共享同一個(gè)靜態(tài)變量。您可以聲明一個(gè)靜態(tài)塊來初始化靜態(tài)變量。當(dāng)?shù)谝淮渭虞d類時(shí),靜態(tài)塊只被調(diào)用一次。

以下示例顯示了具有靜態(tài)方法的類

 
public class Main {
  static int a = 3;
  static int b;

  static void meth(int x) {
    System.out.println("x = " + x);
    System.out.println("a = " + a);
    System.out.println("b = " + b);

  }

  public static void main(String args[]) {
    Main.meth(42);
  }
}

輸出:

例子

以下示例顯示了具有靜態(tài)變量的類。

 
public class Main { 
    static int a = 3; 
    static int b; 
}

我們可以引用上面定義的靜態(tài)變量如下:

Main.a

以下示例顯示了具有靜態(tài)初始化塊的類。

public class Main {

  static int a = 3;

  static int b;

  static {
    System.out.println("Static block initialized.");
    b = a * 4;
  }
}

Java final關(guān)鍵字

無法修改最終變量。 必須在聲明時(shí)初始化最終變量。最終變量基本上是一個(gè)常數(shù)。

final變量

 
public class Main {
  final int FILE_NEW = 1;
  final int FILE_OPEN = 2;
}

防止覆蓋

聲明為final的方法不能被覆蓋。

 
class A{
  final void meth() {
    System.out.println("This is a final method.");
  }
}

class B extends A {
  void meth() { // ERROR! Can"t override.

    System.out.println("Illegal!");

  }
}

如果嘗試編譯上面的代碼,編譯器將生成以下錯(cuò)誤。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號