<JAVA - 面向對象(三)>
阿新 • • 發佈:2018-01-25
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在類加載的時候加載 publicstatic 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 - 面向對象(三)>