2-2 Time类的定义
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
通过本题目的练习可以掌握类与对象的定义;
设计一个时间类Time,私有数据成员有hour(时)、minute(分)、second(秒);
公有成员函数有:setHour(int)设置数据成员hour的值(采用12小时制),非法的输入默认为12;setMinue(int)设置数据成员minute的值,非法输入默认为0;setSecond(int)设置数据成员second的值,非法输入默认为0;setTime(int,int,int)设置时、分、秒三个数据成员的值; showTime()显示时间对象的值。
在主函数main()中调用相应成员函数,使得时间对象的值能从键盘接收,并正确显示。
提示:时、分、秒均按2位数值形式显示 。
Input
输入3个整数,用一个空格间隔
Output
输出 时、分、秒的值,中间用“:”间隔
Sample Input
10 11 12
Sample Output
10:11:12
Hint
输入
58 23 85
输出
12:23:00
Source
import java.text.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int h = scanner.nextInt();
int m = scanner.nextInt();
int s = scanner.nextInt();
Time time = new Time(h, m, s);
time.setTime();
time.showTime();
}
}
}
class Time {
private int hour, minute, second;
DecimalFormat decimalFormat = new DecimalFormat("00");
public Time(int hour, int minute, int second) {
super();
this.hour = hour;
this.minute = minute;
this.second = second;
}
public void setHour() {
if (hour >= 12 || hour < 0) {
hour = 12;
}
}
public void setMinute() {
if (minute >= 60 || minute < 0) {
minute = 0;
}
}
public void setSecond() {
if (second >= 60 || second < 0) {
second = 0;
}
}
public void setTime() {
setHour();
setMinute();
setSecond();
}
public void showTime() {
System.out.println(
decimalFormat.format(hour) + ":" + decimalFormat.format(minute) + ":" + decimalFormat.format(second));
}
}