【问题描述】
MyTime类可以表示时间(小时+分钟),具有两个整数属性和一个字符串属性:
小时值
分钟值
错误消息提示
并具有一个构造方法(与类同名的方法)和三个普通方法:
构造方法:接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则分别用于设定小时值 和分钟值,如不合理,则输出错误提示信息,并将小时值 和分钟值均设为0。
setTime()方法,接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则分别用于设定小时值 和分钟值,如不合理,则输出错误提示信息,并保持原值 不变
showTime()方法,输出时间信息,格式形如“Time is 23:18”
getTime12()方法,输出12小时制的时间信息,格式形如“Time in 12—10:35 am”或“Time in 12—10:35 pm”
要求编程实现MyTime类,使给定的Test类能正常运行,并实现指定的输出内容。
public class Test{
static public void main(String args[]){
MyTime mt = new MyTime(25,43);
mt.showTime();
mt = new MyTime(10,35);
mt.showTime();
System.out.println("Time in 12---"+mt.getTime12());
//mt.getTime12()不能如上直接输出
//会出现“ 错误: 此处不允许使用 '空' 类型”
//修改为mt.getTime12(),接着在mt.getTime12()中输出
//如果一个函数返回值类型为void,则不能再调用函数的同时直接打印
mt.setTime(25,16);
mt.showTime();
mt.setTime(23,18);
mt.showTime();
System.out.println("Time in 12---"+mt.getTime12());
}
}
【输入形式】
【输出形式】
invalid time value! Time is 0:0
Time is 10:35
Time in 12---10:35 am
invalid time value! Time is 10:35
Time is 23:18
Time in 12---11:18 pm
正确代码
import java.util.*;
public class testb{
static public void main(String args[]){
MyTime mt = new MyTime(25,43);
mt.showTime();
mt = new MyTime(10,35);
mt.showTime();
// System.out.println("Time in 12---a");
mt.getTime12();
//mt = new MyTime(25,16);
mt.setTime(25,16);
mt.showTime();
//mt = new MyTime(23,18);
mt.setTime(23,18);
mt.showTime();
//System.out.println("Time in 12---b");
mt.getTime12();
}
}
class MyTime{
private int hour;
private int mint;
//private String day="am";
private String warning="invalid time value! ";
public MyTime(int hour,int mint){
this.hour=hour;
this.mint=mint;
if(hour<0||hour>23){
System.out.print("8"+warning);
hour=0;
mint=0;
System.out.println("Time3 is "+hour+":"+mint);
}
else if(mint<0||mint>59){
System.out.print("7"+warning);
hour=0;
mint=0;
System.out.println("Time4 is "+hour+":"+mint);
}
}
public void getTime12(){
String day="am";
if(hour>12){
day="pm";
hour=hour-12;
System.out.println("Time in 12---a"+hour+":"+mint+" "+day);
//return hour;
//return mint;
//return day;
}
else{
System.out.println("Time in 12---a"+hour+":"+mint+" "+day);
//return hour;
//return mint;
//return day;
}
//System.out.println("Time is "+hour+":"+mint);
}
public void showTime(){
//System.out.print("Time1 is "+hour+":"+mint);
if(hour>=0&&hour<=23){
//System.out.println(warning);
// hour=0;
// mint=0;
System.out.println("Time1 is "+hour+":"+mint);
}
/*else{
System.out.print("Time2 is "+hour+":"+mint);
}*/
//注释部分为断点输出检查代码错误
}
public void setTime(int hour,int mint){
if(hour<0||hour>23){
System.out.print(warning);
}
else if(mint<0||mint>59){
System.out.print(warning);
}
else{
this.hour=hour;
this.mint=mint;
}
//其他普通(void)方法中也可以使用构造方法,为参数赋值
}
}