这是我的作业问题: 下列哪些类不是紧密封装?紧密封装类
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