NextDate面向对象实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NextDate面向对象实现

NextDate面向对象实现 nextdate包是一个实现“输入3个参数:年(year)、月(month)、日(day),返回输入日期后面的那个日期”的面向对象程序。该包由1个抽象类(CalendarUnit)、4个具体类(Date、Month、Year、Day)组成。其UML图如下: 下面是详细描述。 ①CalendarUnit类 职责:提供一个操作在子类中设置属性值;提供一个布尔操作,说明在子类中的属性是否可以增1。 package nextdate; public abstract class CalendarUnit { protected int currentPos; protected void setCurrentPos(int pCurrentPos){ currentPos = pCurrentPos; } protected int getCurrentPos(){ return currentPos; } protected abstract boolean increment(); } ②Date类 职责:Date对象由Day、Month和Year 3个对象组成。Date对象通过这三个对象的布尔增量方法增1。如果Day和Month对象不能加1,则Date根据需要重新设置Day和Month;如果是一年的最后一天,则Year也要加1。printDate操作通过Day、Month和Year对象中的get()成员函数,以mm/dd/yyyy格式输出日期。 package nextdate; public class Date { private Day d; private Month m; private Year y; public Date(int pMonth, int pDay, int pYear) { y = new Year(pYear); m = new Month(pMonth,y); d = new Day(pDay,m); } public void increment(){ if(! d.increment()){ if(! m.increment()){ y.increment(); m.setMonth(1,y); } d.setDay(1,m); } } public void printDate(){ System.out.println(m.getMonth()+/+d.getDay()+/+y.getYear()); } } ③Day类 职责:Day对象有一个私有Month属性,用以决定Day取值是要加1还是复位。如果复位,Month属性值需增加1。提供get()和set()服务,以及所继承的布尔增量方法。 package nextdate; public class Day extends CalendarUnit{ private Month m; public Day(int pDay, Month m) { setDay(pDay,m); } public boolean increment(){ currentPos+=1; if(currentPos=m.getMonthSize()) return true; else return false; } public void setDay(int pDay, Month m){ setCurrentPos(pDay); this.m = m; } public int getDay(){ return currentPos; } } ④Month类 职责:Month对象有一个私有Year属性,用以决定2月份是闰月还是平月。Month对象有一个私有数组属性,用以保存每月份的最后一天。提供get()和set()服务,以及所继承的布尔增量方法 package nextdate; public class Month extends CalendarUnit{ private Year y; private int[] sizeIndex = {31,28,31,30,31,30,31,31,30,31,30,31}; public Month(int pMonth, Year y) { setMonth(pMonth,y); } public void setMonth(int pMonth, Year y)

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档