Java中的static和final是兩個非常重要的關(guān)鍵字,它們可以被用于很多場合,以下是對它們的詳細介紹。
static
public class Example {
static int counter = 0;
public Example() {
counter++;
}
}
在上述代碼中,counter被聲明為靜態(tài)變量,也就是說,它是與Example類本身關(guān)聯(lián)的,而不是與Example類的任何一個實例關(guān)聯(lián)的。因此,在每個Example實例構(gòu)造之后,counter會被自動遞增。這樣,我們就可以知道有多少Example實例被創(chuàng)建出來了。
除了變量外,方法和塊也可以被聲明為靜態(tài):
public class Example {
static int counter = 0;
public static void increment() {
counter++;
}
static {
//在類加載時自動執(zhí)行的靜態(tài)塊
}
}
final
public class Example {
final int value = 10;
public void setValue() {
//這里的代碼會出現(xiàn)編譯錯誤
value = 20;
}
}
在上述代碼中,value被聲明為final變量,因此它的值在初始化之后便不能被更改。如果試圖將一個值賦給它,程序會出現(xiàn)編譯錯誤。
與變量不同,方法和類也可以被聲明為final:
public final class Example {
public final void doSomething() {
//只有這個方法實現(xiàn)
}
}
這里,我們將Example聲明為final類,以及將doSomething()聲明為final方法。這意味著子類不能重寫該方法。同樣,final類也不能被繼承。
綜上所述,static和final是Java中非常有用的關(guān)鍵字,我們可以使用它們來定義變量、方法和類的屬性和行為。