先看一段程式
public
class staticclass
//靜態變數
public
static
int a = 1; //共有
private
static
int e = 1; //本類私有
protected
static
int f = 1; //子類以及包下共有
static
int g = 1; //包下共有
//靜態常量
final static
int b = 2; //常量,存放在常量池,外部引用時,值直接為2,無須載入該類
//靜態內部類,只有這種類才可以用static修飾
private
static
class people
//static修飾方法,表明方法為類方法,可直接通過類獲取
public
static staticclass getinstance()
//例項方法,只能例項化後獲取
public
void
sayhello()
}
通過**可以看到以及推導出:
1.static可以修飾方法,變數,類。均可新增private、protected、public等修飾符進行訪問控制。但區別在於static修飾類只能是內部類。2.static表示類變數,通過類名直接訪問。
3.static**塊只在類載入時候執行一次,所以自然而然就會想到static**塊可以代替構造器進行初始化工作,而且static**塊的優先順序高於構造器,構造器執行時只是在例項化的時候執行。
4.靜態變數的初始化工作也是在類載入的時候完成。類載入分為(載入、驗證、準備、連線、初始化、使用、解除安裝)幾個部分,準備階段首先初始化靜態變數,但並沒有賦值,在初始化階段進行賦值運算,因此**中可以做到變數先賦值後宣告。
5.final與static修飾的變數是常量,對於常量,編譯器在編譯時直接使用值代替變數
6.靜態方法只能使用靜態變數,而例項變數可以訪問靜態變數。靜態變數可以稱為全域性變數(public),例項變數可以理解為區域性變數,全域性變數是不允許訪問區域性變數的。就好像公家的東西你可以用,但是你個人的東西不會允許被公用吧!
static用法小結
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...
static用法總結
static static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域...
static用法小結
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...