靜態學習筆記StaticDemo.java

 

//static關鍵字:靜態
//用法:是一個修飾符,用於修飾成員(成員變量,成員函數)。
//當成員被靜態修飾後,就多了一個調用方式。除了可以被對象調用外,還可以直接被類名調用。類名.靜態成員。
//static 特點
//1.隨着類的加載而加載。
//也就是說:靜態會隨着類的消失而消失,說明他的生命週期最長。
//2。優先於對象存在
//明確一點:靜態是先存在的。對象是後存在的。
//3.被所有對象所共享
//4.可以直接被類名所調用。
//實例變量和類變量的區別:
//1.存放位置。
// 類變量隨着類的加載而存在於方法區中
// 實例變量隨着對象的建立而存在於堆內存中。
//2.生命週期:
// 類變量生命週期最長,隨着類的消失而消失
// 實例變量生命週期隨着對象的消失而消失。
//靜態使用注意事項:
//1.靜態方法只能訪問靜態成員
//非靜態方法可以訪問既可以訪問靜態也可以訪問非靜態
//2.靜態方法中不可以定義this,super關鍵詞
//因爲靜態優先於對象存在。所以靜態方法中不可以出現this
//3.主函數是靜態的
//靜態有利有弊
//利處:對對象的共享數據進行單獨空間的存儲,節省空間,沒有必要每一個對象中都存儲一份
//  可以直接被類名調用
//弊端:生命週期過長
//  訪問出現侷限性,(靜態雖好,只能訪問靜態。。)
//

class Person
{
 String name;//成員變量。實例變量
 static String country="CN";//靜態的成員變量。類變量
 public static  void show()
 {
  System.out.println("::"+country);
 }
}
class StaticDemo
{
 public static void main(String[] args)
 {
  //Person p=new Person();
  //p.name="zhangsan";
  //p.show();
  //System.out.println(p.country);
  System.out.println(Person.country);
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章