一.單利模式
惡漢式
創(chuàng)建過程:
?? ?? ? 將構(gòu)造方法私有化
?? ?? ? 創(chuàng)建一個static修飾的對象?給靜態(tài)方法調(diào)用
?? ?? ? 創(chuàng)建一個static修飾的獲取唯一一個對象的方法
class Singlton{
? ? prvate static Singlton s = new Singlton();
? ? prvate Singlton(){}
? ? public static Singlton getInstance(){
?? ??? ?? ? return s;
?? ?}
?}
懶漢式:
創(chuàng)建過程:
?? ?? ? 將構(gòu)造方法私有化
?? ?? ? 創(chuàng)建一個static修飾的對象?給靜態(tài)方法調(diào)用
?? ?? ? 創(chuàng)建一個static修飾的獲取唯一一個對象的方法
class Singlton{
? ? prvate static Singlton s = null;
? ? private Singlton(){}
? ? public static Singlton getInstance(){
?? ?? ? if(s == null){
?? ??? ?? ? return new Singlton();
?? ??? ?}
?? ??? ?? ? return s;
?? ?}
?}
二 .static
? ? 1.static?修飾的變量和方法?變成了靜態(tài)變量和靜態(tài)方法
? ? 2.靜態(tài)變量和方法隨著類的創(chuàng)建而創(chuàng)建?隨著類的銷毀而銷毀?先與對象的存在?被所用的對象共享
? ? 3.靜態(tài)變量和方法可以用類名調(diào)用也可以用對象調(diào)用? 推薦類名調(diào)用
? ? 4.static修飾的方法只能調(diào)用外部static修飾的變量或者方法?想調(diào)用不是static修飾的變量或者方法必須創(chuàng)建對象
三.代碼塊
? ? 1.靜態(tài)代碼塊:? static{ }?隨著類的創(chuàng)建只被創(chuàng)建一次
? ? 2.構(gòu)造代碼塊 :{}? 每次創(chuàng)建對象都會被調(diào)用一次
? ? 3.局部代碼塊:?定義在方法中的一對{}? ? ? ?執(zhí)行結(jié)束后立即釋放資源
?? ?靜態(tài)代碼塊?優(yōu)先于?構(gòu)造代碼塊?優(yōu)先于?構(gòu)造方法
四.繼承的格式:
格式:?修飾符?子類名?extends?父類名{}
?? ?? ? 1.java中的繼承只支持單繼承?不支持多繼承?但支持多層繼承
?? ?? ? 2.?不能繼承父類的私有成員
?? ?? ? 3.如果一個類沒有繼承?默認繼承object類
五.繼承中成員的查找優(yōu)先級
?? ?? ? 成員變量:現(xiàn)在子類中查找?再去父類中查找?找不到報錯
?? ?? ? 構(gòu)造方法:子類的構(gòu)造方法默認先執(zhí)行父類的無參構(gòu)造方法邑飒,如果父類中沒有無參數(shù)的構(gòu)造方法必須執(zhí)行其他的構(gòu)造方法
? ? ? this(....)?調(diào)用本類的構(gòu)造方法? super(....)調(diào)用父類的構(gòu)造方法
?? ??且只能放在可執(zhí)行代碼的第一行執(zhí)行
?? ?? ? 成員方法:先在子類中查找?再去父類中查找?找不早報錯
六.方法的重載和重寫
? ? 重載:一個類中可以存在多個名字相同的方法?但要保證參數(shù)的個數(shù)或者參數(shù)的類型不同?與返回值無關(guān)
? ? 重寫:在存在繼承關(guān)系的兩個類中拯田,子類中可以存在和父類一模一樣的方法
重寫的注意事項:
? ? 1.父類的私有方法子類不可以重寫?
? ? 2.子類重寫父類放的訪問權(quán)限不能更低
? ? 3.父類static修飾的方法硝清。子類也必修用static修飾
七.final關(guān)鍵字
?? ?1.final修飾類不能被繼承?
?? ?2.final修飾的方法不能被重寫
?? ?3.final修飾的變量為常量。
? ? final修飾的成員變量需要在對象創(chuàng)建完成之前賦值? 初始化賦值 構(gòu)造代碼塊賦值?構(gòu)造方法賦值
? ? final修飾的基本數(shù)據(jù)類型?值不能改變
? ? final修飾的引用數(shù)據(jù)類型?地址值不能改變?但是?可以修改里面的屬性