【ClassPractice03】引数を持つメソッドを作ってみよう

前回は、

クラスの中に処理(メソッド)を書ける

ことを学びました。

今回は一歩進みます。

メソッドに値を渡してみます。

これを「引数(ひきすう)」といいます。

難しく考えなくて大丈夫です。


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

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

にする

6. 作成をクリック


② Playerクラスを作る

ClassPractice03 を右クリック

→「追加」→「クラス」

→ Player.cs


③ Player.cs に書く

namespace ClassPractice03
{
    public class Player
    {
        public string Name;
        public int Hp;

        public void ShowStatus()
        {
            Console.WriteLine("名前: " + Name);
            Console.WriteLine("HP: " + Hp);
        }

        public void TakeDamage(int damage)
        {
            Hp = Hp - damage;
            Console.WriteLine(Name + " は " + damage + " のダメージを受けた!");
        }
    }
}

新しく追加された部分

public void TakeDamage(int damage)

ここがポイントです。

int damage が

引数(ひきすう)

です。


■ 引数とは?

今はこれだけ覚えればOKです。

メソッドに渡す値

です。


④ Program.cs に書く

Player p1 = new Player();

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

p1.ShowStatus();

p1.TakeDamage(30);

p1.ShowStatus();

⑤ F5で実行

結果:

名前: 勇者
HP: 100
勇者 は 30 のダメージを受けた!
名前: 勇者
HP: 70

■ ここで何が起きている?

この行です。

p1.TakeDamage(30);

30 が

damage

に渡されます。

そして

Hp = Hp - damage;

で HP が減ります。


■ 重要なポイント

引数を使うことで、

同じ処理をいろいろな値で使える

ようになります。

例えば:

p1.TakeDamage(10);
p1.TakeDamage(50);

どんなダメージでも対応できます。


■ 今日のゴール

✔ 引数を持つメソッドを書けた

✔ 値を渡せた

✔ オブジェクトの状態が変化した


■ 今はまだ覚えなくていいこと

  • 戻り値
  • 複数引数
  • オーバーロード
  • private

段階的に進みます。


まとめ

ClassPractice01

→ データをまとめた

ClassPractice02

→ 処理をまとめた

ClassPractice03

→ 値を渡せるようになった

ここまでできれば、

クラスの理解はかなり進んでいます。


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