靜態域和靜態方法
在絕大多數的面向對象程序設計語言中,靜態域被稱爲類域,術語“ static ”只是沿用了 C++ 的叫法,並無實際意義
1、靜態常量和靜態方法
靜態變量用的比較少,靜態常量卻用的比較多
- 一個常用的靜態常量是 System.out,然而有一個 setOut 方法,可以將 System.out 設置爲不同的流,原因是這是一個本地方法,不是用 Java 語言實現的。
- 靜態方法沒有隱式參數:
Math.pow(x,a);//沒有 this 參數
- 注意:可以使用對象名調用靜態方法,但結果與對象本身沒有任何關係,建議使用類名調用靜態方法。
- C 語言中的“ static ”表示退出一個塊後依然存在的局部變量和表示不能被其他文件訪問的全局變量和函數。
- C++ 語言中的“ static ”表示屬於類且不屬於對象的變量和函數。
2、工廠方法
- 靜態方法的另一種常見用途,例如 NumberFormat 使用工廠方法產生不同風格的格式對象:
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
NumberFormat percentFormatter = NumberFormat.getPercentInstance();
double x = 0.01;
System.out.println(currencyFormatter.format(x));// 輸出 ¥0.01
System.out.println(percentFormatter.format(x));// 輸出 1%
3、main 方法
在啓動程序時還沒有一個對象,靜態的 main 方法將執行並創建程序所需要的對象。
- 添加 main 方法是一種常見的測試技巧,比如在沒有 main 方法的類中添加 main 方法。