オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?
C#でオブジェクト(インスタンス)を作成する際、最初に呼び出されるのが コンストラクタ です。
コンストラクタは、クラスの名前と同じで、戻り値がなく、オブジェクトの初期化に使われます。
コンストラクタの特徴
- クラス名と同じ名前を持つ
- 戻り値の型(voidなど)を持たない
- オブジェクト生成時に自動で呼ばれる
基本構文
public class クラス名 {
// コンストラクタ
public クラス名() {
// 初期化処理
}
}
引数なしのコンストラクタ(デフォルトコンストラクタ)
public class Person {
public string Name;
public Person() {
Name = "名無し";
}
}
Person p = new Person();
Console.WriteLine(p.Name); // → 名無し
引数ありのコンストラクタ
public class Person {
public string Name;
public int Age;
public Person(string name, int age) {
Name = name;
Age = age;
}
}
Person p = new Person("太郎", 25);
Console.WriteLine(p.Name); // → 太郎
複数のコンストラクタ(オーバーロード)
C#では、コンストラクタを複数定義して、使い分けることができます(オーバーロード)。
public class Book {
public string Title;
public int Price;
public Book() {
Title = "未定";
Price = 0;
}
public Book(string title, int price) {
Title = title;
Price = price;
}
}
thisキーワードで他のコンストラクタを呼び出す
public Book() : this("未定", 0) {
// 上の Book(string, int) を呼び出す
}
まとめ
コンストラクタ(Constructor)は、オブジェクトを生成したときに自動で呼ばれる特別なメソッドです。
フィールドの初期化や、必須情報の設定に使われ、プログラムの安全性・読みやすさを高めます。
C#では、this
を使ったコンストラクタ呼び出しや、オーバーロード
による柔軟な使い分けも可能です!