在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为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+" "+min+" "+sec); System.out.println(); System.out.println("相减/加后的结果为"); System.out.println(hours+" "+minutes+" "+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(); } }