Java 是一種物件導向的程式語言,物件是 Java 中的主要建構塊。然而,Java也提供了靜態類別的概念。靜態類別是只能包含靜態方法、變數和巢狀類別的類別。在本文中,我們將探討靜態類別是什麼、它如何運作以及它在 Java 中的實作。
Java中的靜態類別
Java中的靜態類別是不能被實例化的類別。也就是說,我們不能建立靜態類別的物件。我們只能使用類別名稱本身來存取其成員。換句話說,靜態類別是只包含靜態成員的類別。靜態類別通常用於將相關的實用方法分組在一起。例如, Java 中的Math類是一個靜態類,它提供各種數學運算,例如求最大值或最小值、三角函數等。我們可以使用類別名稱和點運算子來存取 Math 類別中的方法,如下所示:Math.max(5, 10)。例子
讓我們來看看 Java 中靜態類別的範例。假設我們要建立一個類別來執行各種字串操作,例如反轉字串、查找字串的長度等等。在此範例中,我們建立了一個名為StringUtils的靜態類,其中包含兩個靜態方法:reverse和length。這些方法將字串作為參數,並分別傳回反轉的字串和字串的長度。在main方法中,我們建立了一個字串str並將其傳遞給StringUtils類別的「reverse」和「length」方法。public class StringUtils {
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
程式的輸出將是:
!dlrow,olleH 13
在下一個更新的範例中,我們在StringUtils類別中 新增了一個名為Formatter的靜態巢狀類別。這個靜態巢狀類別還包含一個名為format的靜態方法,該方法接受一個字串並傳回其大寫版本。 在main方法中,我們使用靜態巢狀類別Formatter來格式化字串str並將其列印到控制台。我們也呼叫了StringUtils類別的reverse和length方法來分別反轉字串並找到其長度。
public class StringUtils {
// nested Static class
public static class Formatter {
public static String format(String str) {
return str.toUpperCase();
}
}
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
// Using static class
String formattedStr = StringUtils.Formatter.format(str);
System.out.println(formattedStr);
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
程式的輸出將是:
你好世界!!dlrow,olleH 13
如您所看到的,Java 中的靜態類別還可以包含靜態巢狀類,這些類別可用於將相關功能組合在一起。
GO TO FULL VERSION