1. 程式人生 > ><JAVA - 面向對象(三)>

<JAVA - 面向對象(三)>

auth 分隔 語法 override 我們 @override ati span har

01、單例模式:

package danli;
/**
 *     三星Note7:
 *         手機的型號:        note7
 * @author 韋桂金
 *    
 *    懶漢式:
 *        特點: 節省空間
 *
 *    餓漢式:
 *        特點: 第一刻就把對象創建出來,等待被使用
 */
public class Note7 {
    
    static Note7 note;    // 在內存中開辟一個空間,存放Note自定義數據類型的變量note
    
    // 無參構造
    public Note7() {
        
    }
    
// 創建方法 public static Note7 st() { if(note == null) { note = new Note7(); //Note7 = new Note7(); } return note; } } /** * 餓漢式: * @author 韋桂金 * */ class Note2 { // 寫一個類 static Note2 note2 = new Note2(); // static在類加載的時候加載 public
static Note2 getNote2() { return note2; } }
package danli;
/**
 *     note7:
 *         note這個手機只能創建一個
 * @author 韋桂金
 *
 */
public class Note7Test {
    
    public static void main(String[] arge) {
        // 方法的獲取方法    對象名.方法名
        Note7 note1 = Note7.st();
        Note7 note2 
= Note7.st(); Note7 note3 = Note7.st(); Note7 note4 = Note7.st(); System.out.println(note1); System.out.println(note2); System.out.println(note3); System.out.println(note4); System.out.println("=========分隔符=================="); Note2 st = Note2.getNote2(); Note2 nt = Note2.getNote2(); Note2 so = Note2.getNote2(); Note2 fe = Note2.getNote2(); System.out.println(st); System.out.println(nt); System.out.println(so); System.out.println(fe); } }

02、繼承:

package extend;
/**
 *  爺爺的類
 * @author 韋桂金
 *
 */
public class GrandFather {
    int money = 1200;
}
package extend;
/**
 *     父類:
 * @author 韋桂金
 *
 */
public class father extends GrandFather{
    int age;
    char gender;
    
    //static String name = "針對";
     public void eat() {
         System.out.println("我愛吃芹菜.....");
     }
}
package extend;
/**
 *  子類
 * @author 韋桂金
 *
 */
public class Son extends father {
    String name;
    
    /*public Son(int age,char gender,String name){ // 構造函數
        
    }*/
    @Override
    public void eat() {
        super.eat();
    }
}
package extend;
/**
 *     繼承:
 *         當我們想要一個模板,實現多種對象,把代碼取出來放到一個單獨的類中  -->這個存放的類叫作父類
 *                  父類(超類,基類):    被繼承者
 *                 子類(派生類):            繼承者
 *         語法:
 *             public class 子類名 extends 父類名{
 *                         
 *             }
 *     註意事項:
 *         1.一個只能直接繼承一個類,但是可以間接繼承其他類
 *         2.一個類如果沒有明確extends另一個類,那麽默認繼承Object類:一個類,是所有類的超類
 * 
 * 範圍:
 *         子類可以繼承父類的所有數據,包括私有數據,但是要間接訪問,構造函數不能繼承
 * 
 * 好處:
 *         省代碼
 * 
 * 方法重寫:
 *         如果子類和父類方法名完全相同,子類的這個方法就叫做方法的重寫
 * 
 * 重寫需要註意的地方:
 *             1.構成重寫的條件:方法的返回值,方法名,參數列表要完全相同,修飾符的範圍不能小於父類
 *             2.私有的方法和構造函數不能被重寫
 *             3.靜態方法不存在重寫的概念,但是可以
 *     
 * @author 韋桂金
 *
 */
public class ExtendTest {
    public static void main(String[] args) {
        // 創建對象
        Son son = new Son();
        son.eat();
        
        System.out.println(son.money);
        System.out.println(son.name);
    }
}

<JAVA - 面向對象(三)>