【ClassPractice07】HPを「見るだけ」できるようにする

前回、Hp を private にしました。

private int Hp;

これで外から触れなくなりました。

でも問題があります。

今のHPを外から確認できません。

守ることはできましたが、

何も見えないのは不便です。


解決方法

「見るだけ」できるメソッドを作る


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

  1. ExtraPractice.sln を開く
  2. 右クリック → 「追加」→「新しいプロジェクト」
  3. 「コンソール アプリ」
  4. プロジェクト名
ClassPractice07
  1. 作成

② Playerクラスを作る

ClassPractice07 を右クリック

→「追加」→「クラス」

→ Player.cs


③ Player.cs に書く

namespace ClassPractice07
{
    public class Player
    {
        public string Name;
        private int Hp;

        public Player(string name, int hp)
        {
            Name = name;
            Hp = hp;
        }

        public void TakeDamage(int damage)
        {
            Hp = Hp - damage;
        }

        public int GetHp()
        {
            return Hp;
        }
    }
}

新しく追加された部分

public int GetHp()
{
    return Hp;
}

これは

HPを取得するメソッド

です。


④ Program.cs に書く

Player p1 = new Player("勇者", 100);

Console.WriteLine(p1.GetHp());

p1.TakeDamage(40);

Console.WriteLine(p1.GetHp());

実行結果

100
60

ここで重要なこと

  • Hp は private
  • 外から直接触れない
  • でも GetHp() を通せば見られる

つまり、

制御しながら公開している

状態です。


今日のゴール

✔ private を守ったまま

✔ 必要な情報だけ外に出せた


まとめ

  • データを守る → private
  • 必要な分だけ公開する → メソッド

これが設計の基本です。


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