JavaA2Z

KAB-studio > プログラミング > JavaA2Z > カプセル化とは

カプセル化

日本語 隠蔽化
英語 encapsulation
ふりがな かぷせるか
フリガナ カプセルカ

解説

クラスの中に閉じこめて、外から保護すること。オブジェクト指向の用語のひとつ。
具体的には、フィールドprivateフィールドにすることで外から直接アクセスできなくなるようにすること。
privateフィールドとすることで隠蔽化することができ、それによりフィールドの書き換えをクラスの管理下でうことができるようになり、使う側の自由にさせないことができる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // NormalClass
        NormalClass normalClass = new NormalClass();

        // NormalClassクラスのdataフィールドは
        // privateフィールドなのでカプセル化されて
        // 外からアクセスできない状態になっています。
        // normalClass.data = 100;
        // コンパイルエラー:
        // フィールド normalClass.data は不可視です。
        // 「不可視」=「隠蔽されている」というわけです。

        // カプセル化されていても、アクセスする方法が
        // なければどうしようもないので、普通は
        // getter/setter等のメソッドが必要です。
        normalClass.setData( 100 );
        System.out.println( normalClass.getData() );
    }
}

/**
*   フツーのクラス。
*/
class NormalClass
{
    /**
    *   privateなフィールド。
    *   このフィールドはカプセル化されて
    *   他のクラスからアクセスできなくなるわけです。
    */
    private int data;

    /**
    *    getter。
    */
    public int getData()
    {
        return data;
    }

    /**
    *    setter。
    */
    public void setData( int value )
    {
        this.data = value;
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // NormalClass
        NormalClass normalClass = new NormalClass();

        // NormalClassクラスのdataフィールドは
        // privateフィールドなのでカプセル化されて
        // 外からアクセスできない状態になっています。
        // normalClass.data = 100;
        // コンパイルエラー:
        // フィールド normalClass.data は不可視です。
        // 「不可視」=「隠蔽されている」というわけです。

        // カプセル化されていても、アクセスする方法が
        // なければどうしようもないので、普通は
        // getter/setter等のメソッドが必要です。
        normalClass.setData( 100 );
        System.out.println( normalClass.getData() );
    }
}

/**
*   フツーのクラス。
*/
class NormalClass
{
    /**
    *   privateなフィールド。
    *   このフィールドはカプセル化されて
    *   他のクラスからアクセスできなくなるわけです。
    */
    private int data;

    /**
    *    getter。
    */
    public int getData()
    {
        return data;
    }

    /**
    *    setter。
    */
    public void setData( int value )
    {
        this.data = value;
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/05/09
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。