當我們創建類時會指出哪個類的對象的外觀與行為。
一般的流程是用new 創建這個類的對象,然后生成數據的存儲空間,并使用相應的方法。
但以下兩種情況不太適合這個流程:
- 只想用一個存儲區域來保存一個特定的數據—–無論要創建多少個對象,甚至根本不創建對象。
- 當我們需要一個特殊的方法,它沒有與這個類有任何的對象關聯。也就是說,即使沒有創建對象,也需要一個能調用的方法。
此時就要使用static關鍵字去定義我們的屬性或者方法。
除了靜態數據和靜態方法,還有靜態內部類的使用
在此之前首先說一下內部類
內部類
要注意的有下面幾點
- 普通(非內部)類不可設為private或protected—-只允許public或者“友好的”。
- 內部類可以聲明為private, 類設計人員可完全禁止其他人依賴類型編碼,并可將具體的實施細節完全隱藏起來,除此以外,從客戶程序員的角度來看,一個接口的范圍沒有意義,因為他們不能訪問不屬于公共接口類的任何額外方法。這樣一來,java編譯器也有機會生成效率更高的代碼。
static 內部類
內部類的對象默認持有創建它的那個封裝類的對象的引用。static內部類意味著: - 為創建一個static內部類的對象,我們不需要一個外部類的對象
- 不能從static內部類的一個對象中方位一個外部類對象
由于static 成員只能位于一個類的外部級別,所以內部類不可
擁有static數據或者static內部類。倘若為了創建內部類的對象
而不需要創建內部類的一個對象,那么可將所有的東西都設
為static. 同時也必須將內部類設為static.