【发布时间】:2012-08-29 06:32:45
【问题描述】:
我知道我的问题将被提名为在发布后立即关闭,但让我告诉你,我一直在搜索该网站,以寻找一个用 Java 举例说明的明显差异。请不要急于结束问题。
我写了以下内容:
public class Bank {
public String name="XXX Bank";
private int noOfCust;
public int getNoOfCust() {
return getNoOfCusts() + 2;
}
public void setNoOfCust(int noOfCust) {
if(noOfCust > 0)
{
this.noOfCust = noOfCust;
}
}
private int getNoOfCusts()
{
noOfCust = 100;
return noOfCust;
}
}
这里,'noOfCust 是被隐藏的数据'。我不是通过引入私有 getNoOfCusts() 来公开实现部分。所以我相信这是封装,因为我已经将所有细节都捆绑在一个类中,并且也隐藏了数据。
问题1:如果这种强封装?如果没有,我该如何改进它以进行强封装?
问题2:抽象意味着完全隐藏实现。那么我上面做的是抽象吗?
我出于沮丧而发布了这个问题,因为我已经向面试官解释了上述解释,他告诉我,这不是正确的意思。
P.S:请按照上面的例子回答。我不想要实时示例或假设。
【问题讨论】:
-
为什么客户数量有两个getter?为什么其中之一更改值?
-
只是指定我可以在我写的私有方法中实现我想要的任何逻辑。其实没必要,不过我放那个只是为了说明,以后可以改逻辑。
-
D@Nandkumar:忘记密码。我刚才写它是为了问这个问题。我知道它可以改进。我需要概念之间的明确区别
标签: java