第13回 C#入門 C#プログラミングでコンストラクターを扱ってみよう!
今回はコンストラクターについて説明したいと思います。コンストラクターとは簡単に言いますとクラスをインスタンス生成する際に一度だけ呼ばれるものです。一般的には初期化するものと覚えておいてください。では、実際にプログラムを確認してみましょう。
まずはこのように記載して見ます。
using System;
namespace Program
{
class Sample
{
static void Main(string[] args)
{
Console.WriteLine("welcome");
Car car1 = new Car();
}
}
class Car
{
public int CarNumber { get; set; }
public string CarType { get; set; }
public void WriteLine()
{
Console.WriteLine("CarNumber:{0}", CarNumber);
Console.WriteLine("CarType:{0}", CarType);
}
}
}
順番に説明しますとこの車クラスを使いたい場合はNewでインスタンスを生成しますよね、ここまでは前回勉強した時と同じです。ここからですが、ここに新たにコンストラクタを追加します。
コンストラクターの基本式はこのように記載します。
Public car(){}
クラス名と同じ名前でメソッドを記載するイメージです。ただし、注意点として戻り値の型(void)などは記載しません。
実際にプログラムを確認しましょう。
using System;
namespace Program
{
class Sample
{
static void Main(string[] args)
{
Console.WriteLine("welcome");
Car car1 = new Car();
}
}
class Car
{
//↓↓↓追加
public Car()
{
Console.WriteLine("watson C#");
}
//↑↑↑追加
public int CarNumber { get; set; }
public string CarType { get; set; }
public void WriteLine()
{
Console.WriteLine("CarNumber:{0}", CarNumber);
Console.WriteLine("CarType:{0}", CarType);
}
}
}
このように記載します。
これで、Carクラスのコンストラクターを記載できたことになります。試しにこのコンストラクタの中にライトラインでワトソンC#と記載して見ます。順番に説明していきますと、まず、Console.WriteLine(“welcome”)が実行されその後にこの車クラスがインスタンスされています。ここで少し注目して欲しいのですが、ここでメソッドやプロパティの値などは呼び出していないことです。試しにこれで実行して見ますとこのようにワトソンC#が出力されていることが確認できます。どいうことかと言いますと、このクラスをインスタンスしたときに、このコンストラクタが自動で呼び出されています。つまりこのコンストラクタはインスタンスしたときに自動で呼び出される。特殊なメソッドと覚えておいてください。
★はい、ここからは一般的なコンストラクタの使い方について説明致します。
冒頭でも説明しましたが、コンストラクタは主に初期化処理に用います。プログラミング初心者の方はまだ馴染みがないかもしれませんが。初期化というのは変数やプロパティに初期値を代入することで、プログラミングにおいてとても大切なことです。どいうことかと言いますと、変数やプロパティに初期値が入っていない場合はプログラムが誤作動を起こしてしまう可能性があります。
実際に体験して見ましょう。例えばこのように記載して見ます。
Int a;
Console.WriteLine(a);
これで実行して見ますと
このように出力されました。よく見て見ますとこの変数aには値を入れてないのに関わらずこのように0という値が出力されました。本来であればエラーが出力されるべきですが、逆くを言いますと勝手に0が入っているということです。
今回はゼロという値が入っていたため問題なく感じてしまいますが、これは開発環境によっても値が変化する可能性があります。初期値が入っていない変数やプロパティは不定値と呼ばれ値がわからないということです。ですので、必ず初期化つまり初期値を入れる処理はするようにしてください。はい、今回はコンストラクタについてということでコンストラクタの説明から、実際にコンストラクタを用いて出力して見ました。コンストラクタの基本式はクラス名と同じ名前で記載することでしたよね、是非実用して見てください。また、補足説明として初期化の重要性についても説明しました。
次回の講座ではListとジェネリックについての内容となっています。重要な内容となっていますので是非ご覧ください。以上でC#入門13を終了と致します。ご静聴ありがとうございました。(๑╹ω╹๑ )
コメント