題目內容:java
這一週的編程題是須要你在課程所給的時鐘程序的基礎上修改而成。可是咱們並不直接給你時鐘程序的代碼,請根據視頻本身輸入時鐘程序的Display和Clock類的代碼,而後來作這個題目。編程
咱們須要給時鐘程序加上一個表示秒的Display,而後爲Clock增長如下public的成員函數:函數
public Clock(int hour, int minute, int second);this
用hour, minute和second初始化時間。spa
public void tick();orm
「嘀嗒」一下,時間走1秒。視頻
public String toString();對象
返回一個String的值,以「hh:mm:ss「的形式表示當前時間。這裏每一個數值都佔據兩位,不足兩位時補0。如「00:01:22"。注意其中的冒號是西文的,不是中文的。blog
提示:String.format()能夠用和printf同樣的方式來格式化一個字符串。內存
另外寫一個Main類,它的main函數爲下面的樣子,注意,必須原封不動地做爲Main的main函數:
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());
clock.tick();
System.out.println(clock);
in.close();
}
注意!在提交的時候,把Main、Clock和Display三個類的代碼合併在一塊兒,其中Main類是public的,而Clock和Display類是沒有修飾符的。另外,千萬注意第一行不能有package語句。
輸入格式:
採用給定的main函數無需考慮輸入輸出。
輸出格式:
採用給定的main函數無需考慮輸入輸出。
輸入樣例:
採用給定的main函數無需考慮輸入輸出。
輸出樣例:
採用給定的main函數無需考慮輸入輸出。
//主函數按題要求不動 public class Main { public static void main(String[] args) { java.util.Scanner in = new java.util.Scanner(System.in); Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt()); clock.tick(); System.out.println(clock); in.close(); } } //時鐘時分秒都要顯示,因此先創建一個顯示的類 class Display{ private int value=0;//顯示數字 private int limit=0;//上限值 //構造函數,初始化,這裏爲設定上限值 public Display(int limit){ this.limit=limit;//把limit傳給本類的limit } //設定時間的值的函數 public void setValue(int value) { this.value=value; } //獲得顯示值函數 public int getValue() { return value; } //時間數值增長1函數 public void increase() { value++; if(value==limit) {//若是值增到了上限值 value=0;//值置0 } } } //創建一個表示時鐘的類 class Clock { //這個時鐘有時分秒三個成員 //由於是用Display類顯示因此類型爲Display private Display hour = new Display(24);//時,上限爲24 private Display minute = new Display(60);//分,上限爲60 private Display second = new Display(60);//秒,上限爲60 //構造函數,初始化,用於設定時分秒的初始值 public Clock(int hour,int minute,int second) { this.hour.setValue(hour); this.minute.setValue(minute); this.second.setValue(second); } //「嘀嗒」一下,時間走1秒 public void tick(){ this.second.increase();//秒走一秒 if(this.second.getValue()==0) {//零,即達上限,被置零 this.minute.increase();//分走一下 if(this.minute.getValue()==0) {//若是秒達上限值 this.hour.increase();//時走一下 } } } // 把Clock類的對象轉化爲字符串類型,用於輸出 public String toString() { //String.format()能夠用和printf同樣的方式來格式化一個字符串 String time= String.format("%02d:%02d:%02d", this.hour.getValue(), this.minute.getValue(), this.second.getValue()); return time; } }