【ClassPractice03】引数を持つメソッドを作ってみよう
これまで私たちは、1人の Player を作りました。
Player hero = new Player();
これで「1人分のデータ」は扱えるようになりました。
でも、ちょっと考えてみましょう。
ゲームの中にキャラクターは1人だけでしょうか?
たとえば、パーティーが3人いたらどうでしょう。
Player p1 = new Player();
Player p2 = new Player();
Player p3 = new Player();
3人ならまだ書けます。
では、10人だったら?
20人だったら?
毎回 p1、p2、p3… と増やしていくのは、とても大変です。
そこで登場するのが「配列」です。
Player[] party = new Player[3];
これで、
「Playerを3人まとめて管理できる箱」
ができました。
クラスは「1人分の設計図」。
配列は「その設計図を並べて管理する箱」。
この2つが組み合わさると、
- みんなのHPを表示する
- 全員に回復をかける
- 条件に合う人を探す
といったことが、とても簡単にできるようになります。
実はこの
「オブジェクト × 配列」
の形が、アプリ開発の基本の形です。
今まで学んできた
- クラス
- 配列
- ループ
が、ここで一つにつながります。
「別々の知識」だったものが、
ここで「使える道具」になります。
前回は、
クラスの中に処理(メソッド)を書ける
ことを学びました。
今回は一歩進みます。
メソッドに値を渡してみます。
これを「引数(ひきすう)」といいます。
難しく考えなくて大丈夫です。
① プロジェクトを追加する
- ExtraPractice.sln を開く
- ソリューションを右クリック
- 「追加」→「新しいプロジェクト」
- 「コンソール アプリ」を選択
- プロジェクト名を
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
→ 値を渡せるようになった
ここまでできれば、
クラスの理解はかなり進んでいます。



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