【ClassPractice01】クラスとは何か?〜なぜ必要なのかから理解する〜

2026年8月31日

広告

C#を学習していると、必ず出てくる言葉があります。

クラス

オブジェクト

new

ここでつまずく人がとても多いです。

今日は、いきなり難しい説明はしません。

まずは、

「なぜクラスが必要なのか」

から考えてみましょう。


① プロジェクトを追加する

  1. ExtraPractice.sln を開く
  2. ソリューションを右クリック
  3. 「追加」→「新しいプロジェクト」
  4. 「コンソール アプリ」を選択
  5. プロジェクト名を次の名前にする
ClassPractice01
  1. 「作成」をクリック

■ 配列だけで管理してみる

例えば、

3人のプレイヤーを管理するとします。

それぞれに

  • 名前
  • HP
  • MP

があるとします。

今まで学んだ知識で書くとこうなります。

string[] names = new string[3];
int[] hp = new int[3];
int[] mp = new int[3];

names[0] = "勇者";
hp[0] = 100;
mp[0] = 30;

動きます。

ですが、ここで考えてみてください。


問題1

「勇者のHPはどれ?」

→ hp[0]

では、

問題2

「勇者の名前はどれ?」

→ names[0]


ここで重要なことに気づきます。

0番がズレたらどうなる?

もし

names[0] = "勇者";
hp[1] = 100;

と書いてしまったら?

勇者のHPは100ではなくなります。


■ データがバラバラ問題

今の状態はこうです。

名前の箱
HPの箱
MPの箱

全部バラバラ。

「1人分」がまとまっていません。


■ 1人分をまとめたい

ここで考えます。

1人分をひとまとめにできたら便利では?

そこで登場するのが

クラス

です。


② Playerクラスを作る

ClassPractice01 を右クリックし、「追加」→「クラス」を選びます。

ファイル名を Player.cs にして追加します。

③ Player.cs に書く

namespace ClassPractice01
{
    public class Player
    {
        public string Name;
        public int Hp;
        public int Mp;
    }
}

このコードでは、名前・HP・MPをひとまとめにした Player 型を作っています。クラスとは、プログラムで使う型を自分で作るための仕組みです。

④ Program.cs に書く

Player p1 = new Player();

p1.Name = "勇者";
p1.Hp = 100;
p1.Mp = 30;

Console.WriteLine("名前: " + p1.Name);
Console.WriteLine("HP: " + p1.Hp);
Console.WriteLine("MP: " + p1.Mp);

new Player() でPlayer型の実体を作り、名前・HP・MPを代入しています。

⑤ F5で実行する

F5キーを押してプログラムを実行します。

次のように表示されれば成功です。

名前: 勇者
HP: 100
MP: 30

何が起きている?

  • class Player で新しい型を作った
  • new Player() でPlayer型の実体を作った
  • p1 の中に名前・HP・MPをまとめた
  • まとめたデータを画面に表示した

これで「プロジェクトを作る → クラスを書く → オブジェクトを作る → 実行して確認する」までを一通り体験できました。

■ 複数作れる

Player p2 = new Player();

設計は同じでも、中身は別です。

これが

オブジェクト(インスタンス)

です。


■ ここで少しだけ例え話

クラスは

設計図

です。

new は

実際に作る

という意味です。

設計図があっても、

実際に作らなければ存在しません。


■ 今日のポイント

最初に覚えることはたった1つです。

クラスとは、データをまとめるための仕組み

それだけです。


■ よくある誤解

× オブジェクト指向は難しい

× 哲学的なもの

× 3大要素を覚えるもの

違います。

最初は、

データをきれいにまとめる道具

それだけ理解すれば十分です。


■ 次に進むために

次の段階では

  • メソッドをクラスの中に入れる
  • 処理もまとめる

という話になります。

ですが今はまだそこまでいきません。


まとめ

  • 配列だけでは管理が大変
  • 1人分をまとめたい
  • そのための仕組みがクラス
  • クラスは「自分で作れる型」
  • new は実体を作る

ここまで理解できれば、

オブジェクト指向の第一歩は成功です。


実際に作って動かしてみよう


確認課題

Playerをもう1人作り、名前・HP・MPを別の値にして、それぞれのデータが独立していることを確認しましょう。

シリーズの次のページ

訪問数 146 回, 今日の訪問数 1回

広告