- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)
您可能关注的文档
最近下载
- 13.5 道路运输法律制度(政策与法律法规 第五版).pptx VIP
- RB_T 089-2022 绿色供应链管理体系 要求及使用指南.docx VIP
- 13.4 铁路运输法律制度(政策与法律法规 第五版).pptx VIP
- NBT47025-2012缠绕垫片-标准图集.docx VIP
- 派出所矛盾纠纷排查 化解调研.pdf VIP
- 2025年中国人工智能计算力发展评估报告.pdf VIP
- 三峡郦道元的文言文.ppt VIP
- 高中英语与语文课程融合的实践与反思教学研究课题报告.docx
- 医院优质服务基层行创建资料(优质服务基层行建设工作汇报).pptx VIP
- 打叶复烤机械修理工职业技能竞赛培训综合试题五(答案).docx VIP
文档评论(0)