我知道我的问题将在发布时立即被提名关闭,但是让我告诉你,我一直在搜索网站上的一个例子,在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;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,'noOfCust是被隐藏的数据'.我没有通过引入私有getNoOfCusts()来公开实现部分.所以我相信这是封装,因为我已将所有细节捆绑在一个类中并隐藏了数据.
问题1:如果这种强大的封装?如果没有,我怎么能改进它以强烈封装?
问题2:抽象意味着完全隐藏实现.那么我上面所做的是抽象?
我发布这个问题是出于沮丧,因为我已经向一位面试官提供了上述解释,他告诉我,这不是正确的意思.
PS:请按照上面的例子回答.我不想要实时的例子或假设.
Nan*_*ale 11
选择必要的属性并隐藏不需要的细节是Abstraction.例如考虑人.人有眼睛,eyeColor,skinColor属性.但是,如果他去银行,那么银行会做他的抽象,并不考虑这些人的属性,但它选择姓名,地址,电话号码.这是抽象.你误解了它.
封装只是意味着将对象状态(属性)和行为(方法)绑定在一起.如果您正在创建类,那么您正在进行封装.
来自wiki:在面向对象的编程语言(如C++,Object Pascal或Java)中,抽象概念本身已成为一种声明性语句 - 使用关键字virtual(在C++中)或抽象(在Java中).在这样的声明之后,程序员有责任实现一个类来实例化声明的对象.
| 归档时间: |
|
| 查看次数: |
39224 次 |
| 最近记录: |