1. 程式人生 > >Java面向對象之關鍵字static 入門實例

Java面向對象之關鍵字static 入門實例

ID spa 初始 AR name mage 周期 需要 person

一、基礎概念

  靜態關鍵字 static 是成員修飾符,直接用於修飾成員。

  (一)特點:

    1.被靜態修飾的成果,可以直接被類名所調用。

    2.靜態成員優先於對象存在。

    3.靜態成員隨著類的加載而加載。隨著類的消失而消失。靜態成員的生命周期很長。

  (二)註意事項:

    1.靜態方法只能訪問靜態成員,不能訪問非靜態成員。

    2.靜態方法中不能出現this或者super關鍵字。

    3.主函數是靜態的。

  (三)什麽時候用:

    1.成員變量:如果數據在所有對象中都是一樣的。直接用靜態修飾。

    2.成員函數:如果函數沒有訪問過對象中的屬性數據,那麽該函數就是靜態的。

  (四)成員變量和靜態變量的區別:

    1.名稱:成員變量也叫實例變量。靜態變量也叫類變量。

    2.內存存儲:成員變量存儲到堆內存的對象中。靜態變量存儲到方法區的靜態區中。

    3.生命周期:成員變量隨著對象的出現而出現,隨著對象的消失而消失。靜態變量隨著類的加載而加載。隨著類的消失而消失。

  (五)靜態代碼塊:

    1.隨著類的加載而執行,而且只執行一次。

    2.給類進行初始化。

    3.類不需要創建對象,但是需要初始化。這是將部分代碼存儲到靜態代碼塊中。

二、實例代碼  

class Person
{
    private String name;
    
private int age; Person(String name,int age) { this.name = name; this.age = age; } public void show() { System.out.println("name="+name+",age"+age); } //既然sleep方法沒有訪問到對象中的屬性,可以用static修飾該方法。(節約內存的使用) public static void sleep() { System.out.println(
"sleep......"); } //靜態代碼塊 static { System.out.println("static......"); } } class StaticDemo { public static void main(String[] args) { Person p = new Person("xiangming",20); Person.sleep();//調用sleep方法,可以通過類名的方式訪問。 Person.sleep();//用類名調用的方法必須通過指定修飾符static來修飾 } }

三、代碼運行

  技術分享圖片

Java面向對象之關鍵字static 入門實例