Java static與內部類
阿新 • • 發佈:2018-12-20
靜態的值型別變數是 0, 靜態的 引用型別是 null
靜態方法 格式
[訪問控制欄位] static {返回值} {方法名} ( [引數1,引數2,.....])
靜態程式碼塊
static{
[程式邏輯]
}
靜態程式碼在類載入的時候執行且只執行一次
那麼什麼叫做類載入的時候呢?
就是類的物件建立的時候,注意是物件建立例項化的時候,而不是宣告;重要的事說三遍
內部類:成員內部類、方法內部類、靜態內部類
成員內部類:故名思意就是這個類在一個類的內部作為成員類 eg. class Prime{ class Interior{ void show(){ System.out.println("this is the show of Interior"); } } void test(){ Interior int = new Interior(); int.show(); // 內部類可以在外部類中使用 } } 這裡的 Interior 就是成員內部類 通過外部類去訪問內部類: class Main(){ public static void main(String[] args){ Prime.Interior inte = new Prime.new() Interior(); //通過外部類建立內部類的物件 } }
這裡就得說一下訪問控制
private 同一個類
default 在private 基礎上擴充範圍 同一個包
protected 在default 的範圍上擴充範圍 該類的子類訪問
public 能被所有有類訪問
所以給內部類加上private那就不能被外部訪問
方法內部類:定義在方法中的類,且只能被當前方法使用 eg. class Outside{ void test(){ //方法 class Inside{ //方法內部類 void show(){ System.out.printf("this is the Inside"); } } Inside in = new Inside(); in.show(); } }
靜態內部類:就是內部類加上 static 關鍵字
靜態內部類的建立:
外部類名.內部類名 物件名 = new 外部內名.內部類名();
一定要這樣 不能使用非靜態內部類的方式例項化靜態內部類(會報錯的);
靜態內部類需要注意的是:1、靜態內部類中只能訪問外部類中靜態成員; 2、靜態內部類可以定義靜態成員,非靜態內部類不可以