Mailクラスで学ぶ「クラスが必要になる瞬間」

クラスの話でつまずきやすいのは、

  • 「クラスって何?」よりも
  • 「それ、何のために使うの?」

のほうです。

そこで今日は、身近な題材で

“クラスが必要になる瞬間”を体験します。

題材は メール(Mail) です。


1. まずは「変数だけ」でメールを表そうとしてみる

メールには、最低でもこんな情報があります。

  • 差出人(From)
  • 宛先(To)
  • 件名(Subject)
  • 本文(Body)

では、変数だけで1通のメールを表すとこうなります。

string from = "yamada@example.com";
string to = "sato@example.com";
string subject = "会議のお知らせ";
string body = "明日の会議は10時からです。";

ここまでは問題なさそうです。


2. では「メールが2通」になったら?

2通になると、変数が倍になります。

string from1 = "yamada@example.com";
string to1 = "sato@example.com";
string subject1 = "会議のお知らせ";
string body1 = "明日の会議は10時からです。";

string from2 = "tanaka@example.com";
string to2 = "suzuki@example.com";
string subject2 = "資料送付";
string body2 = "資料を添付します。";

ここで質問です。

  • どれが1通目のメールの情報か
  • どれが2通目のメールの情報か

ぱっと見で分かりますか?

さらに3通、10通、100通になったら…。

変数が増えすぎて管理できなくなるのが想像できます。


3. 「ひとまとめ」にしたくなる → それがクラス

そこで登場するのがクラスです。

クラスは一言で言うと、

関連する情報を「ひとまとめ」にする仕組み

です。

メールの情報をひとまとめにする設計図(クラス)を作ります。


4. Mailクラス(メールの設計図)を作る

class Mail
{
    public string From;
    public string To;
    public string Subject;
    public string Body;

    public void ShowSummary()
    {
        Console.WriteLine("件名: " + Subject);
        Console.WriteLine("差出人: " + From);
        Console.WriteLine("宛先: " + To);
    }

    public void Send()
    {
        Console.WriteLine("送信しました: " + Subject);
    }
}

ここで大事なのは:

  • Mailクラスは「メールそのもの」ではない
  • メールを作るための「設計図」

という点です。


5. 設計図から「実物(インスタンス)」を作る

Mailクラスから、実際のメール(実物)を作ります。

Mail mail1 = new Mail();
mail1.From = "yamada@example.com";
mail1.To = "sato@example.com";
mail1.Subject = "会議のお知らせ";
mail1.Body = "明日の会議は10時からです。";

Mail mail2 = new Mail();
mail2.From = "tanaka@example.com";
mail2.To = "suzuki@example.com";
mail2.Subject = "資料送付";
mail2.Body = "資料を添付します。";

ここでのポイント:

  • mail1 と mail2 は 別々のメール
  • でも両方とも 同じ設計図(Mailクラス)から作った

6. 「動き」もメールに持たせられる

作ったメールに対して、こうできます。

mail1.ShowSummary();
mail1.Send();

mail2.ShowSummary();
mail2.Send();

このように、

  • メールが持つ情報(From/To/Subject/Body)
  • メールができること(ShowSummary/Send)

をセットで扱えるようになります。


7. 今日のまとめ(ここだけ覚えればOK)

  • クラス:ひとまとめにするための「設計図」
  • インスタンス:設計図から作った「実物」
  • 変数だけで管理できなくなったとき、クラスが強い

8. 小テスト(1分)

Q. 次のうち「設計図」はどっち?

A. Mail

B. mail1

答えは…

A が設計図(クラス)B が実物(インスタンス)です。


9. 次の一歩(やれる人だけ)

「送信済みかどうか」をメールが覚えるようにできます。

  • bool IsSent;
  • Send() したら IsSent = true;

ここまでできると、クラスがさらに便利に感じられます。


訪問数 4 回, 今日の訪問数 5回