アバター作成画面で理解する「クラス」と「インスタンス」
オブジェクト指向の最初の壁は、
「クラス」と「インスタンス」の違いです。
今日は、ゲームのアバター作成画面を例にして整理してみましょう。
🎮 アバター作成画面を思い出してください
ゲームでキャラクターを作るとき、こんな画面があります。

入力する内容は例えば:
- 名前
- 性別
- 髪型
- HP
- 攻撃力
ですよね。
🧱 クラスとは何か?
クラスとは、
「どんな情報を持つか」を決めた設計図
です。
例えば、C#ではこう書きます。
class Player
{
public string Name;
public int Hp;
public int Attack;
}
これはまだキャラクターそのものではありません。
これは、
「プレイヤーとは、名前・HP・攻撃力を持つものですよ」
という設計書です。
🏗 インスタンスとは何か?
では、実際のキャラクターはいつ作られるのでしょうか?
アバター作成画面で
OKボタンを押した瞬間を想像してください。
プログラム内部では、こういう処理が行われます。
Player p = new Player();
この new が重要です。
new が実行された瞬間、
設計図(クラス)から
実体(インスタンス)が作られます。
※ここで大事な補足
ここでは例えとして「OKボタン」と言っていますが、
実際にインスタンスを作っているのは new です。
ボタンそのものが作っているわけではありません。
ボタンが押されたことをきっかけに、
プログラムの中で new が実行されている、というイメージです。
🧠 対応関係を整理すると
| ゲーム画面 | C#の世界 |
|---|---|
| アバター作成画面 | クラス(設計図) |
| OKボタン(きっかけ) | new の実行 |
| 作られたキャラ | インスタンス |
つまり、
インスタンスとは「実際にメモリ上に作られた実体」です。
🔥 同じ設計図から何人でも作れる
Player p1 = new Player();
Player p2 = new Player();
Player p3 = new Player();
クラスは1つでも、
インスタンスは何個でも作れます。
ここが非常に重要です。
🛠 実際に入力してPlayerを作ってみよう
では、アバター作成画面を
コンソールアプリで再現してみます。
class Player
{
public string Name;
public int Hp;
public int Attack;
}
class Program
{
static void Main()
{
Console.Write("名前を入力してください: ");
string name = Console.ReadLine();
Console.Write("HPを入力してください: ");
int hp = int.Parse(Console.ReadLine());
Console.Write("攻撃力を入力してください: ");
int attack = int.Parse(Console.ReadLine());
Player player = new Player
{
Name = name,
Hp = hp,
Attack = attack
};
Console.WriteLine();
Console.WriteLine("----- 作成されたキャラクター -----");
Console.WriteLine($"名前: {player.Name}");
Console.WriteLine($"HP: {player.Hp}");
Console.WriteLine($"攻撃力: {player.Attack}");
}
}
🔍 ここで何が起きているのか?
① new が実体を作る
Player player = new Player
この瞬間に、
メモリ上にPlayerの実体が作られます。
② { } は生成直後の代入
{
Name = name,
Hp = hp,
Attack = attack
}
これは、
作られた直後のインスタンスに
値を代入しているだけです。
🎯 重要な理解ポイント
- クラスは設計図
- new が実体を作る
- オブジェクトは「まとめて扱えるデータのかたまり」
変数をバラバラに扱うのではなく、
player.Name
player.Hp
player.Attack
のように、
「player」という1つのまとまりとして扱える。
これがオブジェクト指向の第一歩です。
📌 まとめ
- クラス = 設計図
- new = 実体を作る命令
- インスタンス = 実際に作られたオブジェクト
- 同じ設計図から何個でも作れる
アバター作成画面は、
オブジェクト指向を理解するための
とても良い例です。
難しく考える必要はありません。
設計図から実物を作る。
まずはそこをしっかり押さえましょう。





ディスカッション
コメント一覧
まだ、コメントがありません