一、單例模式分為兩種: (1)餓漢式單例:在類載入階段就創建了一個對象。 (2)懶漢式單例:用對對象的時候才會創建對象。(連載53中例子就是懶漢式) 餓漢式舉例: package com.bjpowernode.java_learning; public class D54_1_HungtySi ...
一、單例模式分為兩種:
(1)餓漢式單例:在類載入階段就創建了一個對象。
(2)懶漢式單例:用對對象的時候才會創建對象。(連載53中例子就是懶漢式)
餓漢式舉例:
package com.bjpowernode.java_learning; public class D54_1_HungtySingtonMode { public static void main(String[] args) { Customer54 c1 = Customer54.getCustomer54(); Customer54 c2 = Customer54.getCustomer54(); System.out.println(c1==c2); } } //餓漢式單例模式 class Customer54{ private static Customer54 c = new Customer54(); private Customer54() {} public static Customer54 getCustomer54(){ return c; } }
二、介面也是一種引用類型,可以等同看作類
1.如何定義介面,語法:
[修飾符] interface 介面名()
2.介面中只能出現:常量、抽象方法
3.介面其實是一個特殊的抽象類,特殊在介面是完全抽象的
4.介面中沒有構造方法,無法被實例化
5.介面和介面之間可以多繼承
6.一個類可以實現多個介面。(這裡的”實現“可以等同看作”繼承“)
7.一個非抽象的類實現介面,需要將介面中所有的方法“實現/重寫/覆蓋”
package com.bjpowernode.java_learning; public interface D54_2_InterfaceExercise { public static final String SUCCESS = "sucess"; public static final double PI = 3.1415926; //public static final在介面中是可以省略的,因為由於語法規則知道,只能是常量 byte MAX_VALUE = 127; public abstract void m54();//抽象方法 void test54();//這也是抽象方法,這裡的public abstract也是可以省略的。原因同上 } interface B54 { void m2(); } interface C54{ void m3(); } interface D54{ void m4(); } interface E53 extends B54,C54,D54{ void m5(); } //implements是實現的意思 //由於類是單繼承的,所以這裡使用新的關鍵字implements來實現 class MyClass implements B54,C54{ public void m2() {}//由於m2原來是抽象方法,這裡我們新的類必須覆蓋重寫m2方法 public void m3() {} } class F54 implements E54{ public void m2() {} public void m3() {} public void m4() {} public void m5() {} }
我們按照上面的七個語法進行了舉例。
三、介面的作用(先看個例子吧,總結下次再說)
package com.bjpowernode.java_learning; public interface D54_3_CustomerService { void logout(); }
package com.bjpowernode.java_learning; public class D54_4_ImplementCustomer{ public static void main(String[] args) { //以下程式面向介面去調用 D54_3_CustomerService d1 = new D54_4_ImplementCustomerService();//多態 d1.logout();//底層類,類型是介面,可以的是使用的介面中的方法,實際調用由於底層是類,所以實際用的類的方法 } } class D54_4_ImplementCustomerService implements D54_3_CustomerService{ //對介面中的抽象方法進行實現 public void logout() { System.out.println("成功退出系統!"); } }
四、源碼:
D54_1_HungtySingtonMode.java
D54_2_InterfaceExercise.java
D54_3_CustomerService.java
D54_4_ImplementCustomer.java
地址:
https://github.com/ruigege66/Java/blob/master/D54_1_HungtySingtonMode.java
https://github.com/ruigege66/Java/blob/master/D54_2_InterfaceExercise.java
https://github.com/ruigege66/Java/blob/master/D54_3_CustomerService.java
https://github.com/ruigege66/Java/blob/master/D54_4_ImplementCustomer.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料