これは私の宿題の質問です:次のクラスのうち、しっかりとカプセル化されていないものはどれですか?
class A
{
private int x;
}
class B
{
private int x;
public void setX(int x)
{
this.x=x;
}
public int getX()
{
return x;
}
}
class C
{
private int x;
private void setX(int x)
{
this.x=x;
}
private int getX()
{
return x;
}
}
coderanchを検索するのに少し時間を費やしましたが、必要なものを取得できませんでした。誰か助けてくれませんか?
私が思うに、クラスCは厳密にカプセル化されていません。これは、メソッドがプライベートであるためです。そして、クラスAについて私が感じているのは、それがカプセル化されているだけではないということです。カプセル化の基本的な定義では、「メンバーを非表示にして、希望どおりに動作するユーザーメソッドをクラスに提供する必要があります」と書かれているためです。現在、クラスAにはアクセサーミューテーターメソッドがありません。したがって、Aはカプセル化されていると見なされるべきではありません。よくわかりませんが。私が間違っている場合は訂正してください。