static

類成員,被類所擁有,每個類在程序運行周期內只會加載一次,也就是說一個內存中只存在一個

,他被所有實例共享

static 成員可在它任何對象創建之前進行訪問,無需引用任何對象

public static String name;

實例成員 在創建對象時所擁有,每次new就會創建一個實例,實例成員為實例所擁有,每個使用都有一個

public String address;

Student.name ? 靜態訪問方式,類名。屬性名

共享同一個name ?但每個都有自己的address


// 類方法-》調用方式與類成員一樣

public static void test() {

System.out.println("static");

}

// 實例方法-》調用方式與實例成員一致

public void test(String name) {

System.out.println("non-static");

}

stu.name=>Student.name

如果使用實例來訪問類變量/類方法,在底層會轉變成使用類名來訪問

靜態屬性和靜態方法能被繼承,但是沒有被重寫(overwrite)而是被隱藏.?因為重寫是實現多態的,同一個父類變量指向不同子類實例

只有實例方法能實現多態,類方法不能實現多態


按照Java加載順序??static 先加載類, 然后進行靜態變量初始化??,再創建對象

靜態方法只能訪問靜態屬性

靜態方法中不能有 this 丶 super 關鍵字(沒有創建對象)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • static表示“全局”或者“靜態”的意思,用來修飾成員變量和成員方法,也可以形成靜態static代碼塊,但是Ja...
    安安靜靜寫代碼閱讀 9,638評論 1 7
  • 一直使用static,但沒用總結過,時間一長概念總有點模糊,趁著這次機會總結一下。c++中:C++中static有...
    被代碼淹沒的小伙子閱讀 526評論 0 0
  • 蘿卜頭是一個小女孩,她每天醒來一睜開眼,就會問自己三個問題,我是誰?我在哪里?我要干嘛?每一次醒來就像大腦重啟一樣...
    蘿卜頭的自我療傷過程閱讀 266評論 0 1