【ClassPractice06】private を使ってデータを守る
これまでの Player クラスはこうでした。
public int Hp;
つまり、
p1.Hp = -999;
のように、外から自由に書き換えられます。
ここで考えてみましょう。
HPがマイナスになるのは正しいですか?
普通はおかしいですよね。
では質問です。
誰でも自由にHPを書き換えられていいのでしょうか?
ここで登場するのが private です。
目次
① プロジェクトを追加する
- ExtraPractice.sln を開く
- 右クリック → 「追加」→「新しいプロジェクト」
- 「コンソール アプリ」
- プロジェクト名
ClassPractice06
- 作成
② Playerクラスを作る
ClassPractice06 を右クリック
→「追加」→「クラス」
→ Player.cs
③ Player.cs に書く
namespace ClassPractice06
{
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 bool IsAlive()
{
return Hp > 0;
}
public void ShowStatus()
{
Console.WriteLine("名前: " + Name);
Console.WriteLine("HP: " + Hp);
}
}
}
変わったところ
private int Hp;
これだけです。
private とは?
今はこれだけ覚えればOKです。
そのクラスの中だけで使える
つまり、
外からは触れません。
④ Program.cs に書く
Player p1 = new Player("勇者", 100);
p1.ShowStatus();
p1.TakeDamage(30);
p1.ShowStatus();
試しにこれを書いてみると?
p1.Hp = 500;
エラーになります。
それで正解です。
なぜエラーになるの?
Hp は
private int Hp;
だからです。
外からは見えません。
今日のポイント
✔ private にすると外から触れない
✔ データを守れる
✔ 不正な書き換えを防げる
今はまだやらないこと
- getter
- setter
- プロパティ
それは次の段階です。
まとめ
- public → 外から触れる
- private → 外から触れない
これだけ理解できれば十分です。
訪問数 3 回, 今日の訪問数 1回



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