Java連載54-兩種單例模式、接口詳解

1、單例模式分爲兩種:java

(1)餓漢式單例:在類加載階段就建立了一個對象。node

(2)懶漢式單例:用對對象的時候纔會建立對象。(連載53中例子就是懶漢式)git

餓漢式舉例:github

 

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;

  }

}

2、接口也是一種引用類型,能夠等同看做類微信

1.如何定義接口,語法:學習

 

[修飾符] interface 接口名()

 

 

2.接口中只能出現:常量、抽象方法大數據

3.接口實際上是一個特殊的抽象類,特殊在接口是徹底抽象的ui

4.接口中沒有構造方法,沒法被實例化spa

5.接口和接口之間能夠多繼承.net

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() {}

}

 

 

咱們按照上面的七個語法進行了舉例。

3、接口的做用(先看個例子吧,總結下次再說)

 

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("成功退出系統!");

  }

}

4、源碼:

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.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索