C# コンストラクターの使い方や書き方

## コンストラクターとは
コンストラクターとは、オブジェクトをつくったタイミングで処理を実行するものです。
クラス内の変数に初期値を設定する時などに使います。
全てのクラスには必ずコンストラクターが設定されています。
コンストラクターを設定しない場合は、デフォルトのコンストラクターが設定されます。
## コンストラクターの使い方や書き方

class クラス名
{
  アクセス修飾子 クラス名()
    {
        // コンストラクターの処理
    }
}
アクセス修飾子 クラス名()

アクセス修飾子のあとに、クラス名()を書きます。
これにより、アクセス修飾子 クラス名()
    {
        // コンストラクターの処理
    }
がコンストラクターになります。
アクセス修飾子は他のクラスから呼び出せるように、publicをつけます。

// コンストラクターの処理

newキーワードでこのクラスのオブジェクトがつくられると、コンストラクターが実行し、// コンストラクターの処理が実行されます。

using static System.Console;
class Test1
{
    public string kago;
    public Test1()
    {
        kago = "イチゴ";
    }
}
class Test2
{
    static void Main()
    {
        Test1 test1 = new Test1();
        WriteLine(Test1.kago);
    }
}
イチゴ
public string kago;

アクセス修飾子にpublicを指定したkago変数を宣言します。
publicをつけて他のクラスから呼び出せるようにします。

public Test1()

アクセス修飾子のあとに、Test1()と書きます。
これにより、public Test1()
    {
        kago = “イチゴ”;
    }
がTest1クラスのコンストラクターになります。

kago = “イチゴ”;

Test1クラスのコンストラクターの処理です。
実行されるとkago変数にイチゴが代入されます。

Test1 test1 = new Test1();

newキーワードでTest1クラスのオブジェクトをつくり、test1変数に代入しています。
Test1クラスのオブジェクトがつくられたので、Test1クラスのコンストラクターのkago = “イチゴ”;が実行され、kago変数にイチゴが代入されました。

WriteLine(Test1.kago);

Testクラスのkago変数の中身を表示します。
コンストラクターでイチゴが代入されているためイチゴと表示されます。

## コンストラクターにパラメーターを指定した使い方や書き方
コンストラクターにはパラメーターを指定することができます。
コンストラクターのパラメーターとは、オブジェクトをつくった時に、コンストラクターに渡せる値です。
コンストラクターはこのパラメーターを使った処理をすることができます。

class クラス名1
{
  アクセス修飾子 クラス名(型 変数名)
    {
        // コンストラクターの処理
    }
}
class クラス名2
{
    static void Main()
    {
        クラス名1 オブジェクト名 = new クラス名1(値);
    }
}
クラス名(型 変数名)

パラメーターに渡せる型と、受け取った値を代入する変数名を指定します。
コンストラクターをつくる時に、「 クラス名() 」の「 () 」内に型と変数名を指定します。
指定した型が、パラメーターが受け取れる型です。
指定した変数名が、受け取った値を代入するものです。
これで、コンストラクターはパラメーターを受け取れるようになりました。

クラス名1(値);

コンストラクターのパラメーターに渡す値を指定します。
クラス名1のオブジェクトをつくる時に、「 クラス名1() 」の「 () 」内に値を指定します。
指定した値が、クラス名1のコンストラクターのパラメーターに渡されます。
値は、クラス名(型 変数名)で指定した型の値しか渡せません。

using static System.Console;
class Test1
{
    public string kago;
    public Test1(string nakami)
    {
        kago = nakami + "です。";
    }
}
class Test2
{
    static void Main()
    {
        Test1 test1 = new Test1("イチゴ");
        WriteLine(test1.kago);
    }
}
イチゴです。
string nakami

コンストラクターのパラメーターが受け取れる型にstring型を指定し、受け取った値を代入する変数名にnakamiを指定します。

Test1 test1 = new Test1(“イチゴ”);

Test1クラスのオブジェクトをつくり、コンストラクターを実行します。
Test1クラスのパラメーターのstring nakamiに「 イチゴ 」を渡し、変数nakamiにイチゴが代入されました。

kago = nakami + “です。”;

変数kagoを宣言し、変数「 nakami 」と「 です。 」を代入します。
変数「 nakami 」にはパラメーターに渡された「 イチゴ 」が代入されているので、「 イチゴです。 」が代入されたことになります。

WriteLine(test1.kago);

test1.kagoを表示すると、イチゴです。と表示されます。