一、單例類
大部分時候都把類的構造方法定義成public訪問許可權,允許任何類自由建立該類的物件。但在某些時候,允許其他類自由建立該類的物件沒有任何意義,還可能造成系統效能下降。如果乙個類始終只能建立乙個例項,則這個類被稱為單例類。
1、單例類的建立要求:
①該類的構造方法使用private修飾,將該類的所有構造方法隱藏起來;
②需要提供乙個public方法作為該類的訪問點,用於建立該類的物件,且該方法必須使用static修飾;(因為呼叫該方法之前還不存在物件,因此呼叫該方法的不可能是物件,只能是類)
③該類還必須快取已經建立的物件,否則該類無法知道是否曾經建立過物件,也就無法保證只建立乙個物件。該成員變數需要被上面的靜態方法訪問,故該成員變數必須也使用static修飾。例:
public class singleton
// 提供乙個靜態方法,用於返回singleton例項
// 該方法可以加入自定義控制,保證只產生乙個singleton物件
public static singleton getinstance()
return instance;}}
public class singletontest }
正是通過上面getinstance方法提供的自定義控制(這也是封裝的優勢:不允許自由訪問類的成員變數和實現細節,而是通過方法來控制合適暴露),保證singleton類只能產生乙個例項。所以,在singletontest類的main()方法中,看到兩次產生的singleton物件實際上是同乙個物件。
二、final成員變數
在編寫程式時,用final修飾的成員變數必須由程式設計師顯式地指定初始值。final修飾的類變數,要麼在定義該類變數時指定初始值,要麼在初始化塊中為該類變數指定初始值,要麼在構造方法中指定初始值,以上三個地方不能重複賦值。(注意:程式在編譯的時候,不會對成員變數進行預設初始化)
三、final區域性變數
如果final修飾的區域性變數在定義時沒有指定預設值,則可以在後面**中對該final變數賦初始值,但只能一次,不能重複賦值;如果final修飾的區域性變數在定義時已經指定預設值,則後面**中不能再對該變數賦值。(如果在形參中用了final,則不能在形參構造方法中對該變數賦值)
2017 07 04 列表 元組
一.list 列表 用 表示,有索引下表,可進行切片 二,可以進行增刪改查.1增例 list aaa bbb ccc print list aaa bbb ccc ddd insert 可以限定位置進行新增.list.insert 2 eee print list aaa bbb eee ccc d...
學習筆記 雜湊學習筆記
hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...
學習筆記 CentOS 學習筆記01
簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...