這是我的作業問題: 下列哪些類不是緊密封裝?緊密封裝類
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不應被視爲封裝。但我不確定。如果我錯了,請糾正我。
這大概一個成員變量不會幫助你,但這個問題是以荒謬抽象的方式提出的(大概是你的教官)。一個類只在暴露客戶端所需的接口時被嚴格封裝。如果不知道某個班級的目的,就不可能有意義地說出來。 – millimoose 2012-07-25 15:41:36