ファイルを分けて作成する

C:\DATA\Java2\Class>java MainClass
v1=24   v2=32   gcm=8
v1=24   v2=32   lcm=96
 -- Press any key to exit (Input "c" to continue) --
GcmLcmClass.java と MainClass.java を別ファイルにして、最大公約数と最小公倍数を計算します。

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

プログラムの作成

  1. メモ帳などでタイプして GcmLcmClass.java の名前で保存して下さい。
    //★ MainClass と GcmLcmClass に分ける   前田 稔
    class  GcmLcmClass
    {
        int             v1,v2;
        private int     w;
        private int     gcm;
        private int     lcm;
        GcmLcmClass(int a, int b)
        {   v1=w= a;
            v2=gcm= b;
            while(w!=gcm)
            {   if (w>gcm)  w-= gcm;
                else        gcm-= w;
            }
            lcm= v1*v2/gcm;
        }
        void printGCM()
        {   System.out.println("v1=" + v1 + "   v2=" + v2 + "   gcm=" + gcm);
        }
        void printLCM()
        {   System.out.println("v1=" + v1 + "   v2=" + v2 + "   lcm=" + lcm);
        }
    }
    
  2. GcmLcmClass.java をコンパイルして GcmLcmClass.class を作成して下さい。
    main() メソッドが定義されていないので、次のメッセージが表示されますが無視して下さい。
        C:\DATA\Java2\Class>java GcmLcmClass
        Exception in thread "main" java.lang.NoSuchMethodError: main
         -- Press any key to exit (Input "c" to continue) --
        
  3. GcmLcmClass.class がフォルダーに作成されていることを確認して下さい。
  4. 次に MainClass.java を GcmLcmClass.class と同じフォルダーに置いて、コンパイル&実行して下さい。
    //★ MainClass と GcmLcmClass に分ける   前田 稔
    public class MainClass
    {   public static void main(String args[])
        {
            GcmLcmClass  App= new GcmLcmClass(24,32);
            App.printGCM();
            App.printLCM();
        }
    }
    
  5. ページ先頭の画面が表示されたら完成です。

プログラムの説明

  1. 最大公約数と最小公倍数の計算は コンソールから数値を入力する を参照して下さい。
  2. MainClass では GcmLcmClass を使って、最大公約数と最小公倍数を計算します。
    new GcmLcmClass(24,32) で GcmLcmClass を生成します。
    printGCM(), printLCM() で最大公約数と最小公倍数を印字します。
        GcmLcmClass  App= new GcmLcmClass(24,32);
        App.printGCM();
        App.printLCM();
        
  3. GcmLcmClass ではコンストラクタで渡されたパラメータを受け取って最大公約数と最小公倍数を計算します。
        GcmLcmClass(int a, int b)
        {   v1=w= a;
            v2=gcm= b;
            while(w!=gcm)
            {   if (w>gcm)  w-= gcm;
                else        gcm-= w;
            }
            lcm= v1*v2/gcm;
        }
        

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