IntelliJ IDEA 2026.1 Help

フィールドのカプセル化

フィールドのカプセル化リファクタリングでは、データを非表示にして必要なアクセサーを作成できます。

データを隠し、アクセサーメソッドに基づく外向きインターフェースを通してアクセスすることは良い考えです。 後で、クラスに依存するコードと利用可能なメソッドとの完全な互換性を維持しながら、データ内部を変更することができます。

  1. エディターで、キャレットをクラス、目的のフィールド、リファクタリングするクラス内の任意の場所に配置します。 (選択には プロジェクト ツールウィンドウまたは 構造ビュー を使用することもできます。)

  2. メインメニューまたはコンテキストメニューから、 リファクタリング | フィールドのカプセル化 を選択します。

  3. 表示されるダイアログで、アクセサーを作成するフィールドをチェックし、getter または setter のどちらを作成するかを指定します。 さらに、すべてのフィールドの出現箇所を適切なアクセサーメソッドの呼び出しに置き換える場合は、 フィールドがアクセス可能な場合でもアクセサーを使用 を選択します。 表示オプションを選択することもできます。

  4. プレビューと変更の適用

サンプル

//File Class.java public class Class { public String aString; }
//File Class.java public class Class { private String aString; public void setaString(String aString) { this.aString = aString; } public String getaString() { return aString; } }
//File AnotherClass.java public class AnotherClass { public Class aClass; public void method() { aClass.aString="string"; } }
//File AnotherClass.java public class AnotherClass { public Class aClass; public void method() { aClass.setaString("string"); } }

フィールドのカプセル化ダイアログ

このダイアログを使用して、 フィールドのカプセル化 リファクタリングのオプションを指定します。

項目

説明

カプセル化するフィールド

この領域で、アクセサーを作成するフィールドを選択します。 デフォルトの名前をそのまま使用することも、名前を変更することもできます。

リファクタリングしているクラスに同じシグネチャーを持つメソッドがすでに存在する場合、 メソッド アイコン (the Method icon) が表示され、新しいアクセサーメソッドは作成されません。

既存のメソッドがアクセサーとして機能するかどうかを確認する必要があります。 そうでない場合は、 フィールドのカプセル化 リファクタリングを再度使用する前に、アクセサーの名前を変更するか、既存のメソッドを変更する必要がある場合があります。 新しいアクセサーが親クラスのメソッドをオーバーライド (the Overriding method icon) するか、実装 (the Implemented method icon) する場合、それに応じてマークが付けられます。 この場合も、別の名前を選択するか、既存のメソッドを変更する必要がある場合があります。

アクセス権の取得 / アクセスの設定

このオプショングループを使用して、選択したフィールドにどのアクセサーメソッド(Getter、Setter、両方)を作成するかを選択します。 チェックボックスの 1 つを選択解除すると、フィールドをカプセル化するテーブルの対応する列(Getter または Setter)全体が無効になります。

カプセル化したフィールドの可視性

ここでは、選択したフィールドの新しい表示範囲を指定できます

オプション

フィールドがアクセス可能である場合でもアクセサーを使用するかどうかを選択します。 フィールドがアクセス可能な場合でもアクセサーを使用する オプションが有効になっていない場合、フィールドに直接アクセスできる場合、目的のフィールドへの参照は変更されません。 それ以外の場合、必要なフィールドへのすべての参照はアクセサー呼び出しに置き換えられます。 また、オプショングループ カプセル化したフィールドの可視性 での選択にも依存します。 例: オプション フィールドがアクセス可能な場合でもアクセサーを使用する のチェックを外し、フィールドの プライベート可視性を選択した場合、クラス外のフィールドの使用箇所は変更されますが、クラス内では同じままです。

アクセサーの可視性

この領域では、作成されたアクセサーメソッドの表示範囲を選択します。

2026 年 3 月 30 日