第六天筆記java
靜態修飾符static:設計模式
一.static修飾成員變量:jvm
(1) 用對象進行訪問:對象名.變量名函數
(2) 經過類名來訪問:類名.變量名;工具
(1) 只有須要數據共享才須要用static修飾this
//公有屬性
String name;
//這個變量就變成了一個共享數據 ,單獨存放在一個地方
static String country;//變量只會初始化一次。在內存中值存在一個。設計
(2) 只有靜態變量才能用類名調用,非靜態變量只能經過對象調用對象
(3) 局部變量不容許被static修飾內存
二.Static用來修飾方法get
1.訪問方式:
(1) 用對象進行訪問:對象名.方法名
(2)經過類名來訪問:類名.方法名; 推薦使用
public static void eat (){
System.out.println(country+"正在吃飯");
}
2.使用注意點:
(1)靜態方法能夠用對象和類名調用.非靜態方法只能用對象來調用.
(2)靜態方法是能夠訪問靜態的成員變量,不可以訪問非靜態的成員變量, 非靜態方法中能夠訪問任何成員變量。
緣由:有可能靜態方法被調用了,可是對象尚未被建立出來。
(3)靜態方法能夠直接訪問靜態方法,可是不能訪問非靜態方法.非靜態方法是能夠訪問靜態方法。
緣由:有可能靜態方法被調用了,可是對象尚未被建立出來。
(4) 靜態方法中是不容許出現this關鍵字和super關鍵字
3. 什麼狀況下使用static來修飾方法:
當一個方法不須要直接訪問非靜態數據,這個時候就能夠用static修飾 (定義工具類)
4.特色 : 靜態的數據早於非靜態的數據存在內存中。
三.靜態代碼塊:
編譯的java.class文件被使用的時候就執行了.
權限修飾符:
(1) 爲何用public: main主方法是由jvm來調用的,jvm實際也是一個程序,爲了保證jvm可以在任何狀況下來調用主函數。
(2) Static: 若是沒有static 這個時候調用主方法就須要經過對象來調用,jvm若是建立對象不知道該傳遞什麼參數 因此爲例避免麻煩,就將方法定義成靜態的,這個時候就不須要考慮對象,直接類名調用就能夠了。
(3) Void: main是由jvm調用,返回值是給jvm ,jvm接收返回值沒有任何意義,因此就不須要返回值。
(4) Main: 不是關鍵字,main以及約定好這個就叫入口
(5) Args: 用來接收程序運行時傳遞進來的參數。
單例設計模式:
1.單例設計模式 : 一個類只可以建立一個對象出來.
2.單例的設置步驟:
(1)建立一個對象把他設置爲私有的靜態成員變量,保證對象惟一
private static 類名 對象名 = new 類名();
(2)把構造方法設置爲私有的,防止new一個對象。
private 類名(){}
(3) 定義一個公 開的靜態方法,返回值爲上面的對象。
public static 返回值類型 getInstance (){
return 對象名;
}
3.2種單例模式:餓漢單例模式和懶漢單例模式.