C#のクラス定義とインスタンス生成

C#では1つ1つの機能をクラスという単位で作成していきます。
クラスは、その機能に必要なデータ動きの両方を管理します。
ここでは、クラスの定義の仕方と、定義したクラスの使い方について解説します。



クラスの定義

クラスを定義するにはキーワード(予約語) class を使います。
class キーワードに続く単語が作成するクラスの名前となり、その後の中カッコ{}で囲まれたブロックがこのクラスの範囲となります。

ブロック内には、このクラスが管理するデータをフィールドとして定義し、クラスに対する動作をメソッドとして定義していきます。

以下は基本的なクラス定義のサンプルです。
「Person」と名付けたクラスを定義してみました。
名前を年齢が管理できるよう「Name」と「Age」というフィールドを設けています。
public class Person
{
    public string Name;                      // フィールド
    public int    Age;                       // フィールド

    public void Set(string name, int age)    // メソッド
    {
        Name = name;
        Age = age;
    }
}


クラス名の付け方とガイドライン

クラス名は一定のガイドラインに従って命名する事が推奨されています。
クラス名は単語の最初の文字を大文字(pascal形式)にした名詞または名詞句で命名しましょう。



クラスの使い方

クラスの定義は、変数の型を新たに作ったのだと考える事が出来ます。
作成したクラスを使うには、まずクラス名型の変数を用意します。
int などの変数は、変数を作成すれば直ぐ使う事が出来ましたが、クラスの場合は「インスタンスの生成」という手順が必要になります。


インスタンス生成

インスタンスを生成するにはキーワード(予約語) new を使います。
以下のように new でクラスの実態を生成し、=演算子で変数に割り当てるというイメージです。
変数 = new クラス名();


クラスメンバーへのアクセス

インスタンスが生成出来たらクラスが持つメンバーへアクセスする事が出来ます。
変数名の後にピリオド「.」を付け、更にメンバー名を記述します。
変数名.フィールド名;
変数名.メソッド名();


サンプル

以下は「Person」というクラス定義から2つの変数を作成しているサンプルです。
public class Person
{
    public string Name;                      // フィールド
    public int    Age;                       // フィールド

    public void Set(string name, int age)    // メソッド
    {
        Name = name;
        Age = age;
    }
}



public class Program
{
    static void Main()
    {
        Person taro;
        taro = new Person();                // インスタンス生成
        taro.Set("太郎", 15);

        Person jiro;
        jiro = new Person();                // インスタンス生成
        jiro.Set("二郎", 12);

        int average;
        average = (taro.Age + jiro.Age) / 2;
        Console.WriteLine(average);
    }
}




コメント