在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为MyTime类添加以下方法:
addSecond(int sec)
addMinute(int min)
addHour(int hou)
subSecond(int sec)
subMinute(int min)
subHour(int hou)
分别对时、分、秒进行加减运算。
/*
* 3、【练习题】类的成员变量与方法、构造方法
在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:
时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为MyTime类添加以下方法:
addSecond(int sec)
addMinute(int min)
addHour(int hou)
subSecond(int sec)
subMinute(int min)
subHour(int hou)
分别对时、分、秒进行加减运算。
*/
import java.util.Scanner;
public class MyTime {
//属性
private int hour;
private int minute;
private int second;
//存放相加减后的结果
int seconds;
int minutes;
int hours;
//存放自定义的时间
int hou=5;
int min=12;
int sec=32;
//构造方法实现初始化
public MyTime(int hou,int min,int sec){
this.hour=hou;
this.minute=min;
this.second=sec;
}
//实现对小时的加法运算
public void addHour(int hou){
//实现两个小时数相加
hours=this.hour+hou;
//如果和大于24,则求余
if(hours>24){
hours%=24;
}
}
//实现对小时的减法运算
public void subHour(int hou){
hours=this.hour-hou;
if(hours>0){
//如果向减的小时数为正
hours=this.hour-hou;
}else{
//如果相减的小时数为负
int befhour=this.hour-hou;
hours=24-(-befhour);
}
}
//实现对分钟的加法运算
public void addMinute(int min){
//分钟数相加
minutes=this.minute+min;
//如果分钟数之和,大于60,则求余
if(minutes>60){
minutes%=60;
}
}
//实现对分钟的减法运算
public void subMinute(int min){
//如果分钟数之差大于0
minutes=this.minute-min;
if(minutes>0){
minutes=this.minute-min;
}else{
//如果分钟数之差小于0
//向小时位借1,则为60分钟
int befmin=this.minute-min;
minutes=60-(-befmin);
//被减数的小时数减1
this.hour--;
}
}
//实现对秒数的加法运算
public void addSecond(int sec){
//秒数相加
seconds=this.second+sec;
//如果秒数之和大于60,则求余
if(seconds>60){
seconds%=60;
}
}
//实现对秒数的减法运算
public void subSecond(int sec){
//如果秒数之差大于0
seconds=this.second-sec;
if(seconds>0){
seconds=this.second-sec;
}else{
//如果秒数之差小于0
//向分钟位借1,则为60秒
int befsec=this.second-sec;
seconds=60-(-befsec);
//被减数的分钟数减1
this.minute--;
}
}
//打印出时间信息
public void display(){
System.out.println("自定义时间为:");
System.out.println(hou+"\t"+min+"\t"+sec);
System.out.println();
System.out.println("相减/加后的结果为");
System.out.println(hours+"\t"+minutes+"\t"+seconds);
}
}
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int temp=-1;
//初始化时,分,秒
MyTime mt=new MyTime(5, 12, 32);
System.out.println("请输入小时数");
int Hour=input.nextInt();
System.out.println("请选择进行加法还是减法(+ 0)(- 1),输入0或1:");
temp=input.nextInt();
if(temp==0){
//选择加法
mt.addHour(Hour);
}else{
//选择减法
mt.subHour(Hour);
}
System.out.println("请输入分钟数");
int Minute=input.nextInt();
System.out.println("请选择进行加法还是减法(+ 0)(- 1),输入0或1:");
temp=input.nextInt();
if(temp==0){
mt.addMinute(Minute);
}else{
mt.subMinute(Minute);
}
System.out.println("请输入秒数");
int Second=input.nextInt();
System.out.println("请选择进行加法还是减法(+ 0)(- 1),输入0或1:");
temp=input.nextInt();
if(temp==0){
mt.addSecond(Second);
}else{
mt.subSecond(Second);
}
mt.display();
}
}