static關鍵字

static關鍵字

  • 用來修飾共有的結構(屬性/方法/代碼塊/內部類)
  • 實現共有結構的統一控制
  • 類中的常量也經常聲明爲static

修飾屬性

  • 稱爲靜態變量(靜態屬性或類變量)
  • 不能修飾局部變量
  • 屬性按是否被static修飾分爲靜態屬性和非靜態屬性(實例變量)
  • 建立類的多個對象之後,每一個對象都獨立的擁有一套類中的實例變量
  • 建立類的多個對象之後,多個對象共享同一個靜態變量,實現一改全改
  • 實例變量隨着對象的建立而加載.
  • 類變量隨着類的加載而加載
  • 類變量的加載早於對象的建立
  • 能夠經過"類.靜態變量"的方式進行調用(如System.out,Math.PI)
  • 類只加載一次,因此靜態變量也只加載一次
  • 靜態變量存在<font size=3 color=red>方法區</font>的靜態域中.
  • 靜態變量能夠直接經過"類.靜態變量"方法調用,不須要建立對象

修飾方法

  • 隨着類的加載而加載,能夠經過"類.靜態方法"的方式進行調用.
  • 由於生命週期,非靜態方法中既能夠調用非靜態的結構,也能夠調用靜態的結構
  • 靜態方法中只能調用靜態結構
  • 靜態的方法內不能使用this/super這兩個須要基於當前對象的關鍵字(編譯不經過)
  • 靜態結構在類中被調用時能夠直接寫結構名,省去了類名.

static選定標準

  • 選定類變量工具

    • 屬性能夠被多個對象共享,不會隨着對象發生變化
  • 選定靜態方法this

    • 操做靜態屬性的方法一般也設爲static的
    • 工具類中的方法,通常也聲明爲static的(如Math/Arrays/Collections)
相關文章
相關標籤/搜索