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回



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