クラスの実体「インスタンス(Instance)」とは?
C#のようなオブジェクト指向言語では、プログラムの中でクラスという設計図をもとにして、
実際に使える「モノ」を作ることができます。これが インスタンス(Instance) です。
インスタンスとは?
インスタンスとは、クラスから作られた実体のことです。
C#では、クラスを使ってオブジェクトを作成する際に new
キーワードを使いますが、
この操作をインスタンス化(instantiate)とも呼びます。
インスタンスの作り方
Person p = new Person("花子", 20);
p.Greet(); // 実体化したpを使ってメソッドを呼び出す
Personクラスの定義例
public class Person {
public string Name;
public int Age;
public Person(string name, int age) {
Name = name;
Age = age;
}
public void Greet() {
Console.WriteLine("こんにちは、" + Name + "です。");
}
}
オブジェクトとの違いは?
日常的には「インスタンス」も「オブジェクト」もほぼ同じ意味で使われます。
厳密には:
- クラスから生成されたとき:インスタンス
- 生成された後の実体そのもの:オブジェクト
つまり、インスタンスはオブジェクトの生成過程を強調する表現です。
複数のインスタンスを持てる
クラス1つから、複数のインスタンスを作成できます。それぞれ異なる状態を持ちます。
Person p1 = new Person("太郎", 30);
Person p2 = new Person("花子", 25);
p1.Greet(); // → こんにちは、太郎です。
p2.Greet(); // → こんにちは、花子です。
インスタンスの特徴
- 状態(フィールド)と動作(メソッド)を持つ
- メモリ上に存在する実体
- クラスと同じ型として扱われる
まとめ
インスタンス(Instance)とは、クラスをもとに new
キーワードで作成された実体のことです。
これにより、クラスで定義したプロパティやメソッドを現実的に使える形にできます。
C#のプログラミングでは、「クラスを作って → インスタンスを生成して → 操作する」流れが基本になります。