●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

データを守り、使いやすくする!「カプセル化(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)で操作する設計です。
プログラムの安全性・保守性を高めるうえで非常に重要な考え方なので、ぜひ意識して活用してみましょう!

 

Java関連用語集

−−−−−  Java  −−−−−

Javaの基本「クラス(Class)」とは?

Javaの基本「オブジェクト(Object)」とは?

Javaの処理を定義する「メソッド(Method)」とは?

Javaのデータを保持する「フィールド(Field)」とは?

Javaの「クラスの実体」インスタンス(Instance)とは?

クラスの再利用と拡張を実現!「継承(Inheritance)」とは?

オブジェクト指向の柔軟性!「多態性(Polymorphism)」とは?

データを守り、使いやすくする!「カプセル化(Encapsulation)」とは?

共通の土台を定義する「抽象クラス(Abstract Class)」とは?

クラスの共通ルールを定義する「インターフェース(Interface)」とは?

Javaのクラス整理箱「パッケージ(Package)」とは?

Javaで他のクラスを使う「import文」とは?

クラスやメソッドの公開範囲を制御する「アクセス修飾子」とは?

クラスに属するメンバーを定義する「static(静的)」とは?

値や定義を固定するキーワード「final(定数・変更不可)」とは?

エラーが起きても安全に!Javaの「try-catch(例外処理)」とは?

例外を発生させる / 伝える!「throw」と「throws」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

同じ名前で違う使い方ができる!「オーバーロード(Overload)」とは?

親クラスのメソッドを書き換える!「オーバーライド(Override)」とは?

自分自身を指し示す「thisキーワード」とは?

親クラスを扱う「superキーワード」とは?

クラスからオブジェクトを作る!「newキーワード」とは?

「何もない」を表す特別な値「null」とは?

複数のデータをまとめて扱う「配列(Array)」とは?

配列より便利!Javaの「コレクション(Collection)」とは?

Javaの3大コレクション型「List / Map / Set」ってなに?

コードをスッキリ書ける!「ラムダ式(Lambda Expression)」とは?

データを簡潔に処理!Javaの「Stream API」とは?

Javaをどこでも動かす「JVM(Java Virtual Machine)」とは?