day是类的成员变量,而不是tomorrow 方法的成员变量
tomorrow 方法对day的改变是起作用的

解决方案 »

  1.   

    private int year,month,day;
    day是类的全局变量,tomorrow()对其起做用的!
      

  2.   


     public class GOTO29 extends Mydate 
    {
    public int year,month,day;
      
       public static void main (String args[])
       {
       
      Mydate x= new Mydate();
      x.CheckDate(2002,2,2);
      x.tomorrow();
      GOTO29 s=new GOTO29();
      s.CheckDate(2002,2,2);
      s.getday();
      System.out.println(x.getday());
      System.out.println(s.getday());
       }
        int getday () 
       {
        return day;
       }
       void CheckDate(int y,int m, int d)
      {  //--------important
        if(d >31)   
        System.out.println ("day too big!");
    year=y;
    month=m;
    day=d;
      }}
    public class  Mydate 
    {
      public int year,month;
      public int day;
      void CheckDate(int y,int m, int d)
      {  //--------important
        if(d >31)   
        System.out.println ("day too big!");
    year=y;
    month=m;
    day=d;
      }
    void tomorrow ()
    {
    day=day+1;
    }
       int getday () 
       {
        return day;
       }
    }
    从这个程序你可以发现变量的生命周期!