-3

initialize_animal()1 が指すクラス animal (ie. ) で定義された静的メソッドを呼び出すと、メイン関数の実行時に出力が次のようになることを知りたいですDefault height 0

しかし、ステートメント 1 をステートメント 2 のすぐ下に置くと、main 関数を実行すると出力は次のようになりますDefault Height 20

この 2 つの出力の違いの理由を教えてください。

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

最初の方法では、高さを 20 に設定する initialize_animal を呼び出します。次に、新しい動物を作成し、それが作成されると、高さは動物コンストラクターで 0 に設定されます。

2 番目の方法では、最初に動物を作成してから、高さを 20 に設定します。

于 2012-07-03T18:04:45.457 に答える
1

高さは静的と見なされるためです。プログラムの実行中、「高さ」は 1 つだけです。

于 2012-07-03T18:05:45.997 に答える