Class のデータに直接アクセス

GCM=10  LCM=120

C# で gcmlcm Class 内で定義されているデータ領域に直接アクセスします。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. フォルダーに次のファイルを格納して下さい。
    /****************************************/
    /*★ C# Data Access Test    前田 稔 ★*/
    /****************************************/
    using System;
    class console
    {
        public static int Main()
        {
            gcmlcm  glcm = new gcmlcm(24,32);
            glcm.d1 = 40;
            glcm.d2 = 30;
            Console.WriteLine("GCM={0}  LCM={1}",glcm.gcm(),glcm.lcm());
            System.Console.ReadLine();
            return 0;
        }
    }
    
    class gcmlcm
    {
        public int d1, d2;
    
        public gcmlcm(int n, int m)
        {
            d1= n;
            d2= m;
        }
    
        public int gcm()
        {
            int     n,m;
            n= d1;
            m= d2;
            while(n!=m)
            {   if (n>m)    n-= m;
                else        m-= n;
            }
            return n;
        }
    
        public int lcm()
        {
            int     wk;
            wk= gcm();
            return d1*d2/wk;
        }
    }
    
  2. class gcmlcm は gcmlcm Class を定義 で説明した Object Class です。
    前回と違うところは、データ領域が public で宣言されていることです。
    public を省略すると private になります。
    public int d1, d2;
    public で宣言することにより gcmlcm Class の外からでもアクセスできるようになります。
  3. Main() では new で gcmlcm Class をインスタンス化するときに d1,d2 に値を設定しています。
    今回は、その直後に d1,d2 に直接アクセスして、値を変更してみました。
    glcm.d1 = 40;
    glcm.d2 = 30;
  4. データ領域を public で宣言して直接参照することは、C++言語では一般的な操作なのですが、C# では好ましく無い操作とされています。 (^_^;)
    C# ではデータにアクセスするときは「get アクセッサ,set アクセッサ」を使います。
    詳細は Set,Get アクセッサ を参照して下さい。

【演習】

  1. public 宣言を無くして、d1, d2 にアクセス出来ないことを確かめて下さい。
    int d1, d2;

超初心者のプログラム入門(C# Frame Work)