编写Java类MyTool 这个怎们解决d1,d2 没有变化啊?d2日期为什么没变

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:39:02
public class MyDate {
private int Day = 17;
private int Month = 7;
private int Year = 2008;
public MyDate(){}
public MyDate(int d, int m, int y){
Day = d;
Month = m;
Year = y;

}
public void setDay(int d){
Day = d;
}
public int getDay(){
return Day;
}
public void setMonth(int m){
Month = m;
}
public int getMonth(){
return Month;
}
public void setYear(int y){
Year = y;
}
public int getYear(){
return Year;
}
public void Display(){
System.out.println("year:"+Year+",month:"+Month+",day:"+Day);
}
}

public class MyTool {
public static void main(String [] args){
MyTool mt = new MyTool();
MyDate d1 = new MyDate (2,2,2008);
mt.copy(d1);
MyDate d2 = new MyDate (22,2,2009);

mt.copy(d1);
mt.nextWeek(d2);
这两个方法调用了,但你并没有去显示他们。
简单改了下,看符合要求么:

public class MyTool {
public static void main(String [] args){
MyTool mt = new MyTool();
MyDate d1 = new MyDate (2,2,2008);
MyDate d3 =mt.copy(d1);
MyDate d2 = new MyDate (22,2,2009);
MyDate d4 = mt.nextWeek(d2);
d1.Display();
d2.Display();
d3.Display();
d4.Display();

}
public MyDate copy(MyDate x){
MyDate D = new MyDate ();
D.setDay(D.getDay());
D.setMonth(D.getMonth());
D.setYear(D.getYear());
return D;

}
public MyDate nextWeek(MyDate x){
MyDate D = new MyDate ();
int Day = D.getDay()+7;
if(Day>30){
int newDay = Day%30;
int newMonth = D.getMonth()+1;
int newYear = D.getYear();
if(newMonth>12){
newMonth = newMonth%12;
newYear++;
}
D.setDay