Java-類變量,類方法


類變量,類方法

【類變量】

  1. 介紹
    類變量(又叫靜態變量)是該類的所有對象共享的變量,任何一個該類的對象去訪問它時,取到的都是相同的值,同樣任何一個該類的對象去修改它時,修改的也是同一個變量。
    定義類變量:訪問修飾符 static 數據類型 變量名;

  2. 內變量內部布局
    jdk8以及以前,放在靜態域;jdk8以后放在堆中(class對象),當你的類加載的時候會在堆生成一個類的class對象)

  3. 要記住的是
    (1)static變量是同一個類所有對象共享的
    (2)static類變量,在類加載的時候就生成了(即類加載的時候就會初始化類變量)
    (3)類變量的生命周期是隨類的加載開始,隨着類的消亡而銷毀。

  4. 類變量的訪問
    可以通過 類名.類變量名 或者 對象名.類變量名 來訪問,但Java設計者推薦我們使用 類名.類變量名 的方式來訪問。


【類方法】

  1. 介紹
    類變量也叫靜態變量。
    定義格式如下:訪問修飾符 static 數據返回類型 方法名(){}

  2. 類方法經典的使用場景
    (1)當方法中不涉及到任何和對象相關的成員,則可以將方法設計成靜態方法,提高開發效率。
    (2)比如工具類中的方法 utils
    Math類、Arrays類、Collections集合類
    (3)在實際開發中,往往將一些通用的方法,設計成靜態方法,這樣我們不需要創建對象就可以使用,比如打印一維數組,冒泡排序等等

  3. 類方法與普通方法
    (1)類方法和普通方法都是隨着類的加載而加載,將結構信息存儲在方法區:類方法中無this的參數,普通方法中隱含着this的參數。
    (2)類方法可以通過類名或對象名調用,而普通方法只能通過對象名調用。
    (3)類方法中不允許使用和對象有關的關鍵字,比如this和super。普通方法可以。(因為當用類名.類方法名調用的時候,this和super指示不明)
    (4)類方法中,只能訪問 靜態變量 或 靜態方法;而普通方法既可以訪問普通變量(方法),也可以訪問靜態的。

  4. Java中static靜態方法可以繼承嗎?可以被重寫嗎?
    1,可以被繼承,但是不能被重寫,如果父子類靜態方法名相同,則會隱藏derive類方法(調用base類的方法)
    2.靜態方法是編譯時綁定的,方法重寫是運行時綁定的。
    static修飾的方法不能能被重寫

靜態非靜態的訪問等等,一句話本質就是創建時間問題(類的class對象先於這個類的對象)


【小練習】

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM