データを守り、使いやすくする!「カプセル化(Encapsulation)」とは?
Javaのオブジェクト指向には、3つの柱があります。
それが継承・多態性・カプセル化です。
今回紹介するカプセル化(Encapsulation)は、データの安全な管理と操作を実現するための仕組みです。
カプセル化とは?
カプセル化とは、オブジェクトのデータ(フィールド)を外部から直接アクセスできないようにし、
メソッド(操作)を通じてのみアクセス可能にする考え方です。
これにより、データの不正な変更や破壊を防ぐことができます。
カプセル化の基本スタイル
- フィールドを
private
にする
- アクセス用の
getter
/ setter
メソッドを用意する
例:カプセル化されたクラス
public class Person {
private String name; // 外部から直接アクセスできない
// データの取得
public String getName() {
return name;
}
// データの設定
public void setName(String name) {
this.name = name;
}
}
使用例
Person p = new Person();
p.setName("Taro"); // データをセット
System.out.println(p.getName()); // データを取得
なぜカプセル化が大切なの?
- データの保護:不正なアクセスや変更から守る
- 内部構造の隠蔽:使う側は中身を意識せずに扱える
- 将来的な変更に強くなる:クラスの中身を変えても外部に影響しにくい
setterにロジックを加えることも可能
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("年齢は0以上を指定してください。");
}
}
このように、データの妥当性チェックを入れることで、安全な値のみを受け付けることができます。
まとめ
カプセル化(Encapsulation)は、オブジェクトの中身(フィールド)を外部から直接触れないようにし、
専用のメソッド(getter/setter)で操作する設計です。
プログラムの安全性・保守性を高めるうえで非常に重要な考え方なので、ぜひ意識して活用してみましょう!