-3

我想知道的是,当我们调用initialize_animal()1指向的类animal(即)中定义的静态方法时,那么在main函数的执行上输出是:Default height 0.

但是如果我们把语句 1 放在语句 2 的下面,那么我们执行 main 函数,输出是:Default Height 20.

请告诉我两个输出出现这种差异的原因。

class test {
       public static void main(String[] args) {
           animal.initialize_animal();    // (1)
           cat obj=new cat();          //2
           System.out.println("Default height:" +obj.getheight());
      }
}
class animal {
     static int Height;

     public animal() {
          Height=0; 
     }

     public int getHeight() {
         return Height; 
     } 

     public static void initialize_animal() {
         Height=20;
     }
}
class cat extends animal {
     String Sound;

     Public cat() {
          Sound="mew";
     }

     public String getSound() {
          return Sound;
     } 
}
4

2 回答 2

1

在第一种方式中,您调用 initialize_animal,它将高度设置为 20。然后您创建一个新动物,当它创建时,高度在动物构造函数中设置为 0。

第二种方法,首先创建动物,然后将高度设置为 20。

于 2012-07-03T18:04:45.457 回答
1

因为高度是静态的。在整个程序执行过程中只有一个“高度”。

于 2012-07-03T18:05:45.997 回答