java static關鍵字
阿新 • • 發佈:2021-01-09
“static方法就是沒有this的方法。在static方法內部不能呼叫非靜態方法,反過來是可以的。而且可以在沒有建立任何物件的前提下,僅僅通過類本身來呼叫static方法。這實際上正是static方法的主要用途。”——《java程式設計思想》
1.static方法
一般稱作靜態方法,由於靜態方法不依賴於任何物件就可以進行訪問,因此對於靜態方法來說,是沒有this的。比如:MyUtil.getDate()不需要new物件就能直接使用這些方法
2.static變數 static變數也稱作靜態變數
靜態變數被所有的物件所共享,在記憶體中只有一個副本,它當且僅當在類初次載入時會被初始化。
3.static程式碼塊
靜態程式碼塊可以置於類中的任何地方,類中可以有多個static塊。在類初次被載入的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次,可以用來優化程式效能。
static變數和程式碼塊的初始化順序按照定義的順序進行初始化。
4.程式碼說明:
/** * @Description static關鍵字 * @Author rll * @Date 2021-01-08 10:45 */ public class TestStatic { //靜態變數 private static String tmp = "test"; //靜態方法 private static void testStatic() { } //普通方法 private void test() { } //變數和方法在內部呼叫 public void print() { this.test(); System.out.println(tmp);//靜態變數,如果寫成this.tmp 編譯器會有警告 testStatic();//靜態方法,如果寫成this.testStatic() 編譯器會有警告 } public static void main(String[] args) { String str = TestStatic.tmp;//靜態變數可直接 類名.變數名 獲取 TestStatic.testStatic();//靜態方法可直接 類名.方法名 使用 TestStatic ts = new TestStatic(); ts.test();//普通方法只能先宣告類物件,再通過該物件執行方法 } }