亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

Java接口如何定義方法

時(shí)間:2024-11-13 20:21:59 JAVA認(rèn)證 我要投稿
  • 相關(guān)推薦

Java接口如何定義方法

  Java接口的方法都是public、abstract類型的,沒有方法體的。但是在JDK8里面,你是可以突破這個(gè)界限的哦。那么如何在java接口中定義方法呢?下面跟yjbys小編一起來看看吧!

  假設(shè)我們現(xiàn)在有一個(gè)接口:TimeClient,其代碼結(jié)構(gòu)如下:

  import java.time.*;

  public interface TimeClient {

  void setTime(int hour, int minute, int second);

  void setDate(int day, int month, int year);

  void setDateAndTime(int day, int month, int year,

  int hour, int minute, int second);

  LocalDateTime getLocalDateTime();

  }

  接下來,SimpleTimeClient類實(shí)現(xiàn)了TimeClient接口,具體代碼如下:

  package defaultmethods;

  import java.time.*;

  import java.lang.*;

  import java.util.*;public class SimpleTimeClient implements TimeClient {

  private LocalDateTime dateAndTime;

  public SimpleTimeClient() {

  dateAndTime = LocalDateTime.now();

  }

  public void setTime(int hour, int minute, int second) {

  LocalDate currentDate = LocalDate.from(dateAndTime);

  LocalTime timeToSet = LocalTime.of(hour, minute, second);

  dateAndTime = LocalDateTime.of(currentDate, timeToSet);

  }

  public void setDate(int day, int month, int year) {

  LocalDate dateToSet = LocalDate.of(day, month, year);

  LocalTime currentTime = LocalTime.from(dateAndTime);

  dateAndTime = LocalDateTime.of(dateToSet, currentTime);

  }

  public void setDateAndTime(int day, int month, int year,

  int hour, int minute, int second) {

  LocalDate dateToSet = LocalDate.of(day, month, year);

  LocalTime timeToSet = LocalTime.of(hour, minute, second);

  dateAndTime = LocalDateTime.of(dateToSet, timeToSet);

  }

  public LocalDateTime getLocalDateTime() {

  return dateAndTime;

  }

  public String toString() {

  return dateAndTime.toString();

  }

  public static void main(String... args) {

  TimeClient myTimeClient = new SimpleTimeClient();

  System.out.println(myTimeClient.toString());

  }

  }

  現(xiàn)在假設(shè)你想在接口TimeClient中添加一個(gè)新功能,通過這個(gè)功能我們可以指定我們所在的時(shí)區(qū)。

  public interface TimeClient {

  void setTime(int hour, int minute, int second);

  void setDate(int day, int month, int year);

  void setDateAndTime(int day, int month, int year,

  int hour, int minute, int second);

  LocalDateTime getLocalDateTime();

  ZonedDateTime getZonedDateTime(String zoneString); }

  隨著TimeClient的變化,你不得不修改你的SimpleTimeClient類,實(shí)現(xiàn)getZonedDateTime方法。一般來說,設(shè)置時(shí)區(qū)這個(gè)功能會(huì)是各個(gè)TimeClient實(shí)現(xiàn)類中通用的一個(gè)功能。這個(gè)時(shí)候,你通常會(huì)選擇再定義一個(gè)AbstractTimeClient類來實(shí)現(xiàn)getZonedDateTime方法。而在JDK8中,你可以選擇直接在接口中來實(shí)現(xiàn)該方法(interface已經(jīng)把手伸到abstract class的地盤了)。

  package defaultmethods;

  import java.time.*;

  public interface TimeClient {

  void setTime(int hour, int minute, int second);

  void setDate(int day, int month, int year);

  void setDateAndTime(int day, int month, int year,

  int hour, int minute, int second);

  LocalDateTime getLocalDateTime();

  static ZoneId getZoneId (String zoneString) {

  try {

  return ZoneId.of(zoneString);

  } catch (DateTimeException e) {

  System.err.println("Invalid time zone: " + zoneString +

  "; using default time zone instead.");

  return ZoneId.systemDefault();

  }

  }

  default ZonedDateTime getZonedDateTime(String zoneString) {

  return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));

  }

  }

  從上面的例子,我們可以看到通過static和default修飾符我們可以直接在接口中實(shí)現(xiàn)方法體,同時(shí)不要忘記,任何在接口中方法聲明都是public類型的哦。

  OK,現(xiàn)在我們需要一個(gè)新的接口:AnotherTimeClient,它得繼承TimeClient接口。那么,對于TimeClient接口中定義的getZonedDateTime方法,你可以做如下三種處理:

  重新聲明getZonedDateTime方法,使它變成abstract類型。

  重新定義getZonedDateTime方法。

  直接繼承。

  而static方法和我們在類里面定義的static方法概念一致。

【Java接口如何定義方法】相關(guān)文章:

Java數(shù)組定義常用方法09-28

區(qū)分Java中抽象類和接口的方法10-06

Java中接口的使用06-19

如何區(qū)分Java中抽象類和接口09-15

Java的接口和抽象類07-09

jQuery定義插件的方法07-24

色彩如何定義建筑09-14

常見液晶顯示器的接口定義是什么09-27

Java自定義線程池相關(guān)代碼09-14

如何定義企業(yè)文化09-04

主站蜘蛛池模板: 武邑县| 日韩欧美精品有码在线洗濯屋| 婷婷综合缴情亚洲狠狠| 欧美黑人与白人精品a片| 国产天天射| 1313午夜精品理论片| 无码精品a∨在线观看十八禁 | 国产成人精品久久一区二区| 成年女人永久免费观看视频| 亚洲精品自拍区在线观看| 少妇人妻久久无码专区| 精品久久久无码中文字幕| 精品国精品国产自在久国产87| 水蜜桃亚洲精品一区二区| 男男欧美一区二区| 国产一区三区二区中文在线| 亚洲午夜精品一区二区| 天天摸天天做天天爽| 成熟丰满熟妇高潮xxxxx| 性大毛片视频| 粉嫩极品国产在线观看| 双鸭山市| 亚洲国产精品久久久久网站 | 太白县| 亚洲第一无码专区天堂| 男生白内裤自慰gv白袜男同| 国产视频资源| 少妇愉情理伦片丰满丰满午夜| 男女猛烈xx00免费视频试看| 91原创视频在线| 日本道专区无码中文字幕| 亚洲人成在线观看网站不卡| 久久精品少妇高潮a片免费观| 日韩内射美女片在线观看网站| 尤物蜜芽AV在线播放| 精品久久久久久久中文字幕| 精品一二三区久久aaa片| 亚洲免费福利视频| 天天综合网网欲色| 三上悠亚久久精品| 亚洲欧美精品伊人久久|