编程语言
首页 > 编程语言> > java练习(面向对象)

java练习(面向对象)

作者:互联网

题目

在程序中经常要对时间进行操作但是并没有时间类型的数据。
那么我们可以自己实现一个时间类来满足程序中的需要。 
定义名为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) 
分别对时、分、秒进行加减运算。

分析

对时间进行加减时,加法运算时,要考虑每满60秒,对应的分加1。满60分,对应的时要加1.减法运算则反之。


 

/*
在程序中经常要对时间进行操作但是并没有时间类型的数据。
那么我们可以自己实现一个时间类来满足程序中的需要。 
定义名为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) 
分别对时、分、秒进行加减运算。
*/
public class Day1601 
{
	public static void main(String[] args) 
	{
		MyTime m = new MyTime(14,58,42);
		m.display();

		m.addSecond(58);
		m.addMinute(43);
		m.addHour(20);
		m.display();

		m.subSecond(58);
		m.subMinute(43);
		m.subHour(20);
		m.display();
		
		System.out.println("Hello World!");
	}
}

class MyTime
{
	//私有化、封装
	private int hou;
	private int min;
	private int sec;
	public MyTime(){
		this(0,0,0);
	}
	public MyTime(int hou,int min,int sec){
		this.hou = hou;
		this.min = min;
		this.sec = sec;

	}

	public void setHou(int hou){
		this.hou = hou;
	}
	public int getHou(){
		return hou;
	}

	public void setMin(int min){
		this.min = min;
	}
	public int getMin(){
		return min;
	}

	public void setSec(int sec){
		this.sec = sec;
	}
	public int getSec(){
		return sec;
	}

	public void display(){
		System.out.println(getHou()+"时"+getMin()+"分"+getSec()+"秒");
	}

	public void addSecond(int sec){
		if ((getSec()+sec) > 60)
		{
			setSec(getSec()+sec-60);
			setMin(getMin()+1);//超过60秒进1分钟
		}else{
		setSec(getSec()+sec);
		}
	}
	
	public void addMinute(int min) {
		if ((getMin()+min)>60)
		{
			setMin(getMin()+min-60);//超过60分进1小时
			setHou(getHou()+1);
		}else{
		setMin(getMin()+min);
		}
	}

	public void addHour(int hou){
		if ((getHou()+hou)>24)
		{
			setHou(getHou()+hou-24);
			System.out.println("+1天");//超过24小时,则+1天
		}else{
		setHou(getHou()+hou);
		}
	}
	
	public void subSecond(int sec){
		if ((getSec()-sec)<0)
		{
			setSec(getSec()+60-sec);
			setMin(getMin()-1);
		}else{
		setSec(getSec()-sec);
		}
	}
	
	public void subMinute(int min) {
		if ((getMin()-min)<0)
		{
			setMin(getMin()+60-min);
			setHou(getHou()-1);
		}else{
		setMin(getMin()-min);
		}
	}

	public void subHour(int hou) {
		if ((getHou()-hou)<0)
		{
			setHou(getHou()+24-hou);
			System.out.println("-1天");

		}else{
		setHou(getHou()-hou);
		}
	}

}

标签:java,min,int,练习,MyTime,面向对象,hou,sec,public
来源: https://blog.csdn.net/weixin_55139299/article/details/121167240