NextDate面向对象实现

NextDate面向对象实现

ID:40564156

大小:53.00 KB

页数:5页

时间:2019-08-04

NextDate面向对象实现_第1页
NextDate面向对象实现_第2页
NextDate面向对象实现_第3页
NextDate面向对象实现_第4页
NextDate面向对象实现_第5页
资源描述:

《NextDate面向对象实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NextDate面向对象实现nextdate包是一个实现“输入3个参数:年(year)、月(month)、日(day),返回输入日期后面的那个日期”的面向对象程序。该包由1个抽象类(CalendarUnit)、4个具体类(Date、Month、Year、Day)组成。其UML图如下:下面是详细描述。①CalendarUnit类职责:提供一个操作在子类中设置属性值;提供一个布尔操作,说明在子类中的属性是否可以增1。packagenextdate;publicabstractclassCalenda

2、rUnit{protectedintcurrentPos;protectedvoidsetCurrentPos(intpCurrentPos){currentPos=pCurrentPos;}protectedintgetCurrentPos(){returncurrentPos;}protectedabstractbooleanincrement();}②Date类职责:Date对象由Day、Month和Year3个对象组成。Date对象通过这三个对象的布尔增量方法增1。如果Day和Month

3、对象不能加1,则Date根据需要重新设置Day和Month;如果是一年的最后一天,则Year也要加1。printDate操作通过Day、Month和Year对象中的get()成员函数,以mm/dd/yyyy格式输出日期。packagenextdate;publicclassDate{privateDayd;privateMonthm;privateYeary;publicDate(intpMonth,intpDay,intpYear){y=newYear(pYear);m=newMonth(pM

4、onth,y);d=newDay(pDay,m);}publicvoidincrement(){if(!d.increment()){if(!m.increment()){y.increment();m.setMonth(1,y);}d.setDay(1,m);}}publicvoidprintDate(){System.out.println(m.getMonth()+"/"+d.getDay()+"/"+y.getYear());}}③Day类职责:Day对象有一个私有Month属性,用以决

5、定Day取值是要加1还是复位。如果复位,Month属性值需增加1。提供get()和set()服务,以及所继承的布尔增量方法。packagenextdate;publicclassDayextendsCalendarUnit{privateMonthm;publicDay(intpDay,Monthm){setDay(pDay,m);}publicbooleanincrement(){currentPos+=1;if(currentPos<=m.getMonthSize())returntrue;

6、elsereturnfalse;}publicvoidsetDay(intpDay,Monthm){setCurrentPos(pDay);this.m=m;}publicintgetDay(){returncurrentPos;}}④Month类职责:Month对象有一个私有Year属性,用以决定2月份是闰月还是平月。Month对象有一个私有数组属性,用以保存每月份的最后一天。提供get()和set()服务,以及所继承的布尔增量方法packagenextdate;publicclassMont

7、hextendsCalendarUnit{privateYeary;privateint[]sizeIndex={31,28,31,30,31,30,31,31,30,31,30,31};publicMonth(intpMonth,Yeary){setMonth(pMonth,y);}publicvoidsetMonth(intpMonth,Yeary){setCurrentPos(pMonth);this.y=y;}publicintgetMonth(){returncurrentPos;}p

8、ublicintgetMonthSize(){if(y.isLeap())sizeIndex[1]=29;elsesizeIndex[1]=28;returnsizeIndex[currentPos-1];}publicbooleanincrement(){currentPos+=1;if(currentPos>12)returnfalse;elsereturntrue;}}⑤Year类职责:提供一个布尔服务,说明当前值是否为闰年。提供get()和set()服务,以及所继承的布尔增量方法。pac

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。