【やさしく完全解説】Addメソッドの作り方と使い方
〜static・デフォルト引数・オーバーロード〜
今回はこのクラスを使います。
/// <summary>
/// 計算ルーチンをまとめたクラス
/// </summary>
class Calc
{
/// <summary>
/// 足し算(int版)
/// </summary>
public static int Add(int a, int b = 3)
{
return a + b;
}
/// <summary>
/// 足し算(double版)
/// </summary>
public static double Add(double a, double b)
{
return a + b;
}
}
① まずは「使い方」から見てみましょう
C#では、プログラムは Main メソッドから始まります。
class Program
{
static void Main()
{
Console.WriteLine(Calc.Add(5));
Console.WriteLine(Calc.Add(5, 2));
Console.WriteLine(Calc.Add(2.5, 1.5));
}
}
② 実行結果
8
7
4
なぜこうなるのでしょうか?
③ Calc.Add(5) の意味
Calc.Add(5);
Addはこう定義されていました:
public static int Add(int a, int b = 3)
b = 3 と書いてありましたね。
これは、
bを省略したら 3 を使う
という意味です。
だから内部では:
5 + 3
となり、結果は 8 です。
④ Calc.Add(5, 2)
これは普通の足し算です。
5 + 2
だから 7 になります。
⑤ Calc.Add(2.5, 1.5)
ここが少し大事です。
このメソッドが使われます:
public static double Add(double a, double b)
なぜ?
→ 2.5 は double 型だからです。
C#は、
引数の型を見て、どのメソッドを使うか決める
仕組みになっています。
これを オーバーロード と言います。
⑥ staticとは何か?
呼び出し方を見てください。
Calc.Add(5);
new Calc() をしていませんね。
これは Add が static だからです。
staticは、
クラス名から直接使えるメソッド
という意味です。
⑦ まとめると
このコードには、実は大切な考え方が詰まっています。
✔ クラスとは「機能をまとめる箱」
✔ メソッドとは「処理のまとまり」
✔ staticは「インスタンス不要」
✔ b = 3 は「デフォルト引数」
✔ 同じ名前で型が違うのは「オーバーロード」
⑧ 初学者が混乱しやすいポイント
なぜ同じAddが2つあるの?
→ 型が違えばOK
なぜ 5 だけで動くの?
→ b に 3 が自動で入る
⑨ 練習問題
① Sub(引き算)を追加してください
② Multiply(掛け算)を作ってください
③ int版とdouble版の両方を作ってください
🔹 発展(考える問題)
次はどうなるでしょう?
Console.WriteLine(Calc.Add(5.0, 2));
どのAddが使われるでしょうか?
(ヒント:型変換が関係します)
sh



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