0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#】カプセル化とは?

Posted at

カプセル化とは?

カプセル化とは、データ(フィールド)とそれを扱う処理(メソッド)を1つのクラスにまとめ、外部から直接触れないようにする仕組みのことです。

つまり、「中身を守る」こと。

イメージとしては、「お薬カプセル」。
中身の成分(データ)は外から直接触れず、カプセル(クラス)が安全に管理してくれます。

なんで隠す必要がある?

もしデータをそのまま外に公開してしまうと、他のクラスが自由に書き換えてしまいます。

たとえば次のようなコード

class Player
{
    public int HP; // 誰でもアクセスできてしまう
}

Player p = new Player();
p.HP = -100; // え?マイナスHP?ゲームバランス崩壊!

こうなると、バグの温床になります。
HPがマイナスになったり、存在しない値が入ったり…。

カプセル化して安全にする

では「HP」を安全に扱うために、privateフィールドpublicプロパティを使ってカプセル化してみましょう。

class Player
{
    private int hp; // 外からは直接触れない

    public int HP
    {
        get { return hp; }
        set
        {
            if (value < 0)
            {
                hp = 0; // 不正な値を防ぐ
            }
            else
            {
                hp = value;
            }
        }
    }
}

使う側

Player p = new Player();
p.HP = -100; // 自動的に0になる
Console.WriteLine(p.HP); // 0

これで「データの不正な変更」を防げます。
これがまさにカプセル化の効果です!

まとめ

項目 内容
意味 データと処理をまとめて守ること
目的 不正なデータ変更を防ぐ、安全性・保守性アップ
よく使う構文 privateフィールド + publicプロパティ
メリット 外部からの影響を減らし、バグを防ぐ

カプセル化とは、「クラスの中身を守る仕組み」
外から触ってほしくない部分を隠し、安全に操作できるようにする。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?