カプセル化
日本語 | 隠蔽化 |
英語 | encapsulation |
ふりがな | かぷせるか |
フリガナ | カプセルカ |
クラスの中に閉じこめて、外から保護すること。オブジェクト指向の用語のひとつ。
具体的には、フィールドをprivateフィールドにすることで外から直接アクセスできなくなるようにすること。
privateフィールドとすることで隠蔽化することができ、それによりフィールドの書き換えをクラスの管理下で行うことができるようになり、使う側の自由にさせないことができる。
具体的には、フィールドをprivateフィールドにすることで外から直接アクセスできなくなるようにすること。
privateフィールドとすることで隠蔽化することができ、それによりフィールドの書き換えをクラスの管理下で行うことができるようになり、使う側の自由にさせないことができる。
参考サイト
- (参考サイトはありません)
// 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;
}
}
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; } }