当前位置: 代码迷 >> Java相关 >> 设计并兑现Day类
  详细解决方案

设计并兑现Day类

热度:3196   发布时间:2013-02-25 21:44:50.0
设计并实现Day类
在一个程序中设计并实现类Day,来表示一周的某一天。该类应储存日期的名称,如Sun代表星期天。该程序需要在Day类对象上实现下面的操作:
a,设置日期
b,输出日期
c, 返回日期的名称
d, 返回下一天的名称
e, 返回前一天的名称
f, 给当前日期加上一些天数,并返回。例如,如果当前日期就是星期一,加4天就应返回星期五。同样,如果当前日期是星期二,加13天就应返回星期一
g,添加合适的构造函数
h,编写方法的定义,实现a-g中的Day类操作
i,编写一个程序,测试类Day的各种操作

本人写的

public class Day
{
int d;

public Day()
{
d = 1;
}

public Day(int i)
{
if (i >= 1 && i <= 7)
d = i;
else
return;
}

public void setDate(int i)//设置日期
{
d = i;
}

public void printDate()//输出日期
{
System.out.println("星期" + d);
}

public int getDate()//返回时期名称
{
return d;
}

public int nextDate()//返回下一天的名称
{
if (d == 7)
return 1;
else
return d + 1;

}

public int beforeDate()//返回前一天的名称
{
if (d == 1)
return 7;
else
return d - 1;
}

public void addSomeDate(int i)//I天后星期几
{
System.out.println("今天是星期"+d+","+i+"天后是星期"+((d + i) % 7));
}

public String toString()
{
return("星期"+d);
}

}

求完美的源代码或者方法。初学求指教

另外本题出自 国外计算机科学经典教材:数据结构——Java版(Data structures using java)
如果哪位大大有这本书的相关练习源代码请发给我 万分感谢!!
415561158@qq.com





------解决方案--------------------------------------------------------
应该设置date而不是设置day吧,
我也不知道你想要什么,顺着你的思路改了下。

Java code
class Day {    int d;    public Day() {        d = 1;    }    public Day(int i) {        if (i >= 1 && i <= 7)            d = i;        else            return;    }    public void setDate(int i) {        d = i;    }    public Day getDate() {        return new Day(d);    }    public void nextDate() {        addSomeDate(1);    }    public void beforeDate() {        addSomeDate(-1);    }    public void addSomeDate(int i) {        d = (d + i) % 7;    }    public String toString() {        String week = "";        switch (d) {        case 1:            week = "Mon";            break;        case 2:            week = "Tue";            break;        case 3:            week = "Wen";            break;        case 4:            week = "Thu";            break;        case 5:            week = "Fri";            break;        case 6:            week = "Sat";            break;        default:            week = "Sun";            break;        }        return week;    }}public class TestDay {    public static void main(String[] args) {        // a,设置日期        Day day = new Day();        day = new Day(2);        // b,输出日期        // c, 返回日期的名称        System.out.println(day.getDate());        // d, 返回下一天的名称        day.nextDate();        System.out.println(day.getDate());        // e, 返回前一天的名称        day.beforeDate();        System.out.println(day.getDate());        // f, 给当前日期加上一些天数,并返回。        day.addSomeDate(3);        System.out.println(day.getDate());    }}
  相关解决方案