public class MyDate{
private int day=12;
private int month=6;
private int year=1900;
public MyDate(int y,int m,int d){
year=y;
month=m;
day=d;
}
void addYear()
{
year++;
}
public void display(){
System.out.println(year+"-"+month+"-"+day);
}
public static void main(String[] args){
MyDate m,n;
m = new MyDate(22,9,2003);
n=m;
n.addYear();
m.display();
n.display();
}
}
n.addYear()为什么结果显示year没加1呢?
还有public MyDate(int y,int m,int d){
year=y;
month=m;
day=d;
这句是不是没用呢?
最后执行的m = new MyDate(22,9,2003);不是上面那个方法啊?如果是的话应该22是年,9是月,2003是日啊,为什么最后还是2003是年呢?public MyDate(int y,int m,int d)不是构造方法吗?

解决方案 »

  1.   

    哦,我看错了,但为什么m.display()和n.display()结果一样呢?明明N就加了1,M没加1啊?
      

  2.   

    但为什么m.display()和n.display()结果一样呢?
    回答: n=m;这样n和m实际上是同一个对象,n,m相当于对于一个对象的不同的名称,所有
    对其中任意一个的操作,都是同样的效果.还有public MyDate(int y,int m,int d){
    year=y;
    month=m;
    day=d;
    这句是不是没用呢?
    这当然有用了,这是构造函数亚.另外你的 new MyDate(22,9,2003);令人误解.应该是 new MyDate(2003,9,22);吧