1. 程式人生 > >Java static與內部類

Java static與內部類

靜態的值型別變數是 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、靜態內部類可以定義靜態成員,非靜態內部類不可以