Java面向對象之關鍵字static 入門實例
阿新 • • 發佈:2018-04-16
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 入門實例