版权声明:原创文章,未经许可不能转载 https://blog.csdn.net/qq_38499625/article/details/79613698
所属类别:类的成员变量与方法、构造方法
题目:
定义名为MyTime的类其中应有三个整型成员时hour分minute秒second为了保证数据的安全性这三个成员变量应声明为私有。
为MyTime类定义构造方法以方便创建对象时初始化成员变量。 再定义display方法用于将时间信息打印出来。
为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 {
int hour;
int minute;
int second;
//创建无参构造函数,初始化时间
public MyTime() {
this.hour = 12;
this.minute = 45;
this.second = 20;
}
//创建带一个参数的构造函数,对时进行操作
public MyTime(int hour) {
super();
this.hour = hour;
}
//构造带有两个参数的构造函数,对时和分进行操作
public MyTime(int hour, int minute) {
super();
this.hour = hour;
this.minute = minute;
}
//构造带有三个参数的构造函数
public MyTime(int hour, int minute, int second) {
super();
this.hour = hour;
this.minute = minute;
this.second = second;
}
//输出时间格式
public void display() {
System.out.println("time is:" + hour + ":" + minute + ":" + second);
}
//加秒算法
public void addSecond(int sec) {
second = second + sec;
if (second > 60) {
minute = minute + second / 60;
second = second % 60;
}
}
//加分算法
public void addMinute(int min) {
minute += min;
if (minute > 60) {
hour += minute / 60;
minute = minute % 60;
}
}
//加时算法
public void addHour(int hou) {
hour += hou;
if (hour > 24) {
hour = hour % 24;
}
}
//减秒算法
public void subSecond(int sec) {
second -= sec;
if (second < 0) {
if (Math.abs(second) > 60) {
minute += (Math.abs(second)) / 60;
} else {
minute--;
}
}
second = Math.abs(second);
}
//减分算法
public void subMinute(int min) {
minute -= min;
if (minute < 0) {
if (Math.abs(minute) > 60) {
hour += (Math.abs(minute)) / 60;
} else {
hour--;
}
minute = Math.abs(minute);
}
}
//减时算法
public void subHour(int hou) {
hour -= hou;
if (hour < 0) {
hour += 24;
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
MyTime mt = new MyTime();
mt.display();
//可手动输入
mt.addSecond(45);
mt.addMinute(20);
mt.addHour(13);
mt.subSecond(50);
mt.subMinute(60);
mt.subHour(13);
mt.display();
//如下可以自定义输入,由键盘录入值
mt.addSecond(sc.nextInt());
mt.addMinute(sc.nextInt());
mt.addHour(sc.nextInt());
mt.subSecond(sc.nextInt());
mt.subMinute(sc.nextInt());
mt.addHour(sc.nextInt());
mt.display();
}
}