カプセル化とは?
カプセル化とは、データ(フィールド)とそれを扱う処理(メソッド)を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プロパティ |
メリット | 外部からの影響を減らし、バグを防ぐ |
カプセル化とは、「クラスの中身を守る仕組み」。
外から触ってほしくない部分を隠し、安全に操作できるようにする。