static メソッドを使う

C:\DATA\Java2\Class>java StaticMain
Gcm(24,32)=8
Lcm(24,32)=96
Gcm(72,64)=8
Lcm(72,64)=576
 -- Press any key to exit (Input "c" to continue) --
static で宣言されたメソッドは new で生成する必要はありません。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして staticClass.java の名前で保存して下さい。
    //★ StaticClass を使う(StaticMain)    前田 稔
    public class StaticClass
    {
        public static int Gcm(int a, int b)
        {   int  v1,v2;
            v1= a;
            v2= b;
            while(v1!=v2)
            {   if (v1>v2)  v1-= v2;
                else        v2-= v1;
            }
            return v1;
        }
    
        public static int Lcm(int a, int b)
        {   int  wk;
            wk = Gcm(a,b);
            return a*b/wk;
        }
    }
    
  2. staticClass.java をコンパイルして staticClass.class を作成して下さい。
    main() メソッドが定義されていないので、次のメッセージが表示されますが無視して下さい。
    Exception in thread "main" java.lang.NoSuchMethodError: main
  3. 次に StaticMain.java を staticClass.class と同じフォルダーに置いて、コンパイル&実行して下さい。
    //★ StaticClass を使う(StaticMain)    前田 稔
    public class StaticMain
    {   public static void main(String args[])
        {
            System.out.println("Gcm(24,32)=" + StaticClass.Gcm(24,32));
            System.out.println("Lcm(24,32)=" + StaticClass.Lcm(24,32));
            System.out.println("Gcm(72,64)=" + StaticClass.Gcm(72,64));
            System.out.println("Lcm(72,64)=" + StaticClass.Lcm(72,64));
        }
    }
    
  4. ページ先頭の画面が表示されたら完成です。

プログラムの説明

  1. 最大公約数と最小公倍数の計算は コンソールから数値を入力する を参照して下さい。
  2. StaticClass のメソッド(Gcm, Lcm) は public static で宣言されています。
    これまでのメソッドと比べてみて下さい。
        public static int Gcm(int a, int b)
        {   ・・・
        }
    
        public static int Lcm(int a, int b)
        {   ・・・
        }
        
  3. このように static で宣言されたメソッドは、プログラムの実行が開始された直後からメモリに割り当てられていて、 これまでのように new で生成(インスタンス化)する必要はありません。
    main() 関数はプログラムの最初に呼ばれるメソッドなので、必ず static で宣言しなければなりません。

超初心者のプログラム入門(Java2)