最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java中的interface應用與面向接口編程

 更新時間:2023年10月10日 08:49:59   作者:zhangbeizhen18  
這篇文章主要介紹了淺談Java中的interface應用與面向接口編程,Java的關鍵字interface應用,一個接口,多個實現(xiàn)類,面向接口編程,把業(yè)務邏輯線提取出來作為接口,具體的業(yè)務實現(xiàn)通過該接口的實現(xiàn)類來完成,需要的朋友可以參考下

前言

場景:Java的關鍵字interface應用,一個接口,多個實現(xiàn)類。面向接口編程,把業(yè)務邏輯線提取出來作為接口,具體的業(yè)務實現(xiàn)通過該接口的實現(xiàn)類來完成。

版本:JDK 1.8。

1.一個Java接口

(1)說明

使用Java關鍵字interface修飾的類型,就是接口。

接口里面方法一般沒有函數(shù)體,實際就是抽象方法。

比如:String announceStart();

接口里面方法有函數(shù)體情況,一般使用default關鍵字修飾。

比如:default String holdSportGame() { ...}

(2)代碼

public interface SportContest {
  //開場儀式
  String announceStart();
  //舉行比賽
  ResultDto playGame();
  //頒獎儀式
  String announceEnd(ResultDto resultDto);
  //舉行體育賽事
  default String holdSportGame() {
      String result01 = announceStart();
      ResultDto result02 = playGame();
      String result03 = announceEnd(result02);
      return result03;
  }
}

2.多個實現(xiàn)類實現(xiàn)同一個Java接口

實現(xiàn)Java接口使用implements關鍵字。

(1)實現(xiàn)類TableTennisContest

public class TableTennisContest implements SportContest {
    //賽事任務
    private TaskDto taskDto = null;
    public TableTennisContest(TaskDto taskDto) {
        this.setTaskDto(taskDto);
    }
    @Override
    public String announceStart() {
        TaskDto taskDto = this.getTaskDto();
        System.out.println("舉行乒乓球比賽入場儀式:");
        System.out.println("步驟一: " + taskDto.getEventName() + "隊員入場.");
        System.out.println("步驟二: 裁判員、教練員等各就各位.");
        return "乒乓球比賽進行中";
    }
    @Override
    public ResultDto playGame() {
        TaskDto taskDto = this.getTaskDto();
        System.out.println("舉行乒乓球比賽: " + taskDto.getContent() + ",選手們在奮力搏擊.");
        return ResultDto.builder().teamName("中國乒乓球隊").content("女單決賽冠軍").build();
    }
    @Override
    public String announceEnd(ResultDto resultDto) {
        System.out.println("舉行頒獎儀式: ");
        System.out.println("步驟一: 為" + resultDto.getTeamName() + resultDto.getContent() + "頒發(fā)金牌.");
        System.out.println("步驟二: 升中華人民共和國國旗,奏中華人民共和國國歌.");
        return "乒乓球比賽圓滿結束";
    }
    public TaskDto getTaskDto() {
        return this.taskDto;
    }
    public void setTaskDto(TaskDto taskDto) {
        this.taskDto = taskDto;
    }
}

(2)實現(xiàn)類SwimmingContest

public class SwimmingContest implements SportContest {
  //賽事任務
  private TaskDto taskDto = null;
  public SwimmingContest(TaskDto taskDto) {
      this.setTaskDto(taskDto);
  }
  @Override
  public String announceStart() {
      TaskDto taskDto = this.getTaskDto();
      System.out.println("舉行游泳比賽入場儀式:");
      System.out.println("步驟一: " + taskDto.getEventName() + "隊員入場.");
      System.out.println("步驟二: 裁判員、教練員等各就各位.");
      return "游泳比賽進行中";
  }
  @Override
  public ResultDto playGame() {
      TaskDto taskDto = this.getTaskDto();
      System.out.println("舉行游泳比賽: " + taskDto.getContent() + ",選手們在沖刺記錄.");
      return ResultDto.builder().teamName("中國游泳隊").content("男子組200米決賽冠軍").build();
  }
  @Override
  public String announceEnd(ResultDto resultDto) {
      System.out.println("舉行頒獎儀式: ");
      System.out.println("步驟一: 為" + resultDto.getTeamName() + resultDto.getContent() + "頒發(fā)金牌.");
      System.out.println("步驟二: 升中華人民共和國國旗,奏中華人民共和國國歌.");
      return "游泳比賽圓滿結束";
  }
  public TaskDto getTaskDto() {
      return this.taskDto;
  }
  public void setTaskDto(TaskDto taskDto) {
      this.taskDto = taskDto;
  }
}

3.示例測試

(1)說明

執(zhí)行接口函數(shù)時,需先創(chuàng)建接口實現(xiàn)類的實例對象。

(2)代碼

public class ApplyInterface {
  // 主函數(shù)入口
  public static void main(String[] args) {
    System.out.println("*******************************");
    holdSportGame(new TableTennisContest(TaskDto.builder().eventName("乒乓球比賽").content("女單決賽").build()));
    System.out.println("*******************************");
    holdSportGame(new SwimmingContest(TaskDto.builder().eventName("游泳比賽").content("男子200米決賽").build()));
    System.out.println("*******************************");
  }
  // 面向接口編程
  public static void holdSportGame(SportContest sportContest) {
      sportContest.holdSportGame();
  }
}

(3)輸出結果

*******************************
舉行乒乓球比賽入場儀式:
步驟一: 乒乓球比賽隊員入場.
步驟二: 裁判員、教練員等各就各位.
舉行乒乓球比賽: 女單決賽,選手們在奮力搏擊.
舉行頒獎儀式: 
步驟一: 為中國乒乓球隊女單決賽冠軍頒發(fā)金牌.
步驟二: 升中華人民共和國國旗,奏中華人民共和國國歌.
*******************************
舉行游泳比賽入場儀式:
步驟一: 游泳比賽隊員入場.
步驟二: 裁判員、教練員等各就各位.
舉行游泳比賽: 男子200米決賽,選手們在沖刺記錄.
舉行頒獎儀式: 
步驟一: 為中國游泳隊男子組200米決賽冠軍頒發(fā)金牌.
步驟二: 升中華人民共和國國旗,奏中華人民共和國國歌.
*******************************

4.輔助實體類

(1)說明

在實體類中使用注解@Data等來自lombok-1.18.24.jar。

(2)TaskDto

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TaskDto implements Serializable {
    //賽事名稱
    private String eventName;
    //活動內(nèi)容
    private String content;
}

(3)ResultDto

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ResultDto implements Serializable {
    //競賽隊伍
    private String teamName;
    //比賽成績
    private String content;
}

到此這篇關于淺談Java中的interface應用與面向接口編程的文章就介紹到這了,更多相關Java的interface面向接口編程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

茂名市| 兴山县| 洛宁县| 东乌珠穆沁旗| 明溪县| 南通市| 固始县| 聂荣县| 高陵县| 高安市| 奉节县| 尼玛县| 靖远县| 蕲春县| 江源县| 若羌县| 陆川县| 临安市| 康平县| 大渡口区| 胶州市| 公安县| 侯马市| 南郑县| 镇康县| 天等县| 阜新市| 荥经县| 长宁区| 荔波县| 闽侯县| 利川市| 黄平县| 西乡县| 榕江县| 台湾省| 如东县| 青浦区| 营口市| 东山县| 威海市|