使用java設計一個名為Time的類
使用java設計一個名為Time的類,這個類包含:
①表示時間的資料域hour,minute和second
②一個以當前時間建立Time物件的無引數構造方法(使用System.currentTimeMillis()獲取當前時間)
③一個構造Time物件的構造方法,以一個指定的流逝時間值來構造Time物件,這個值從1970年1月1日午夜開始到現在流逝的以毫秒錶示的值(資料域的值表示這個時間)
④以指定的小時、分鐘、和秒來構造Time物件的構造方法
⑤三個資料域hour,minute,second各自的獲取方法
⑥一個名為setTime(long elapsedTime)的方法使用流逝的時間給物件設定一個新的時間。例如,如果流逝的時間是555550000毫秒,則轉換為10小時,10分鐘,10秒。提示:555550000 轉換的過程如下:
totalSeconds = 555550000 / 1000;
second = (int)(totalSeconds % 60);
otalMinutes = totalSeconds / 60;
minute = (int)(totalMinutes % 60);
totalHours = (int)(totalMinutes / 60);
hour = (int)(totalHours % 24);
⑦一個名為setTime(int hour, int minute, int second)的方法給物件設定一個新的時間。
⑧定義名為toString()的方法,返回字串型別,格式如下:
return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
⑨建立三個Time物件(使用new Time(),new Time(555550000)和new Time(3,80,3700)),然後顯示它們的小時,分鐘和秒。
以下為程式碼:
public class Time {
private int hour;
private int minute;
private int second;
Time() {
this(System.currentTimeMillis());
}
//傳入以毫秒計時的引數
Time(long time) {
setTime(time);
}
//傳入小時、分鐘、秒,因為使用者輸入的資料可能小於零,此處丟擲異常
Time(int hour, int minute, int second) throws IllegalArgumentException {
if (hour < 0 || minute < 0 || second < 0) {
System.out.println("輸入的時間有誤");
throw new IllegalArgumentException();
}
//此處用於分析使用者輸入的時間進行修改
//如使用者輸入的是3600秒,則我們需要為hour增加一個小時
int seconds = second/60;
this.second = second%60;
int minutes = (minute + seconds)/60;
this.minute = (minute + seconds)%60;
this.hour = (hour + minutes)%24;
}
public void setTime(long elapsedTime) {
double totalSeconds = elapsedTime / 1000;
second = (int) (totalSeconds % 60);
double totalMinutes = totalSeconds / 60;
minute = (int) (totalMinutes % 60);
double totalHours = (int) (totalMinutes / 60);
hour = (int) (totalHours % 24);
}
@Override
public String toString() {
return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
}
public static void main(String[] args) {
Time t1 = new Time();
Time t2 = new Time(555550000);
Time t3 = null;
try{
t3 = new Time(3,80,3700);
}catch (Exception e){
}
System.out.println(t1.toString());
System.out.println(t2.toString());
System.out.println(t3.toString());
}
}
相關文章
- 4.7(java)為一元二次方程ax²+bx+c = 0設計一個名為QuadraticEquation的類。這個類包括:Java
- 成為一名優秀程式設計師(&人類)的 101 個技巧程式設計師
- 一個名為不安全的類Unsafe
- java併發程式設計:Thread類的使用Java程式設計thread
- 作為一個Java程式設計師,這 8 個開源類庫你必須知道!Java程式設計師
- Android studio 如何設計一個較為好看的使用者名稱,密碼輸入框Android密碼
- 簡單設計一個JAVA並行處理工具類Java並行
- 一個專為程式設計師設計的精緻 Java 部落格系統程式設計師Java
- 如何使用objectMapper設定java.time.Instant的字串格式?ObjectAPPJava字串
- 為什麼成為一名程式設計師?程式設計師
- 你為什麼成為一名程式設計師?程式設計師
- 一個Java類的載入Java
- 來自阿里的P7高階程式設計師教你如何成為一名合格的Java程式設計師阿里程式設計師Java
- 想要成為一名程式設計師,怎麼選一個靠譜的IT培訓機構?程式設計師
- 題目:設計一個類,我們只能生成該類的一個例項。 程式碼如下
- 作為一名Java程式設計師一定要不斷關注學習最前沿的技術Java程式設計師
- 別讓自己成為一名廢棄的程式設計師程式設計師
- Python類的基礎--設計、使用Python
- Java入門基礎學習,成為一個Java程式設計師的必備知識Java程式設計師
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- Python書單|成為一名優秀的Python程式設計師Python程式設計師
- Java設計模式-類之間的關係Java設計模式
- 使用Flutter設計一個好看的"我"頁面Flutter
- joda.time之如何獲取到兩個時間的差值(正確的使用Period類)
- 搭建一個Java專案可直接拿去使用的通用工具類Java
- 為什麼說一個好的Java程式設計師,是無碼勝有碼?Java程式設計師
- 如何從0到1設計一個類Dubbo的RPC框架RPC框架
- java 程式設計常混淆的一些屬性,方法,工具類Java程式設計
- 為了設計這個計程車遊戲,開發者真的成為了一名網約車司機遊戲
- 一個故事搞懂Java併發程式設計Java程式設計
- 做為一名java高階程式設計師,這些IT崗位你都瞭解麼?Java程式設計師
- 程式設計師如何成為一名自由職業者程式設計師
- 為什麼要選擇做一名程式設計師?程式設計師
- 成為一名Java架構師的必修課Java架構
- [java設計模式]工廠設計模式,給物件一個合法的生產渠道。Java設計模式物件
- UI培訓分享:如何成為一名優秀的UI設計師UI
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 【Java小疑問】java原始檔當中可以有多個類,但是為什麼只能有一個public類呢?Java