008單例、繼承、final,008繼承final
內容:單例,類繼承,final
##########################################################################################################################
1、單例設計模式(23中設計模式之一)
解決的問題:保證一個類的對象在記憶體中的唯一性,也就是這種類只有一個對象
應用情境:只有一個對象,一個程式使用後,另外一個程式才使用。
class Danli{ public static void main(String[] args) { Single s; s = Single.getInstance(); }}class Single{ //建立一個本類的對象 static Single s = new Single(); //建構函式私人化 private Single(){} //定義一個方法返回該對象 static Single getInstance() { return s; }}餓漢式
餓漢式:該類載入進記憶體的時候就建立對象,急於建立對象,就叫餓漢式
class Danli{ public static void main(String[] args) { Single s; s = Single.getInstance(); }}class Single{ //建立一個本類的對象 static Single s = null; //建構函式私人化 private Single(){} //定義一個方法返回該對象 static Single getInstance() { if(s == null){ s = new Single(); } return s; }}懶漢式
懶漢式:該類載入進記憶體的時候沒有建立對象,到調用getInstance()方法才建立對象,比較懶,就叫懶漢式
靜態方法通過類名就可以調用。
###################################################################################################
2、繼承
Java支援單繼承,不直接支援多繼承。
父類私人化只能通過父類訪問。
調用子類的建構函式用this(參數名稱);調用父類的方法用super(參數名稱);
子類所有建構函式第一行預設有個super();語句,,,,this就沒有super,因為另外一個建構函式裡面有super();
之前做筆記比較少,現在理解了很多就沒有在補充了。
#######################################################################################################
3、final關鍵字
1)可以修飾類、方法、變數
2)final修飾的類不能被繼承
3)final修飾的方法不能被覆蓋
4)final修飾的變數是常量,只能賦值一次
通常修飾不能被修改的變數,最簡單的就是圓周率。