我正在学习OOP和Java,抽象的定义是向用户隐藏实现细节的过程,只有功能会提供给用户。
有人可以向我解释功能和实现细节之间的区别吗?
答案 0 :(得分:12)
真实世界的示例:考虑齿轮箱,用户只能更改齿轮,这就是功能。
变速箱背后的机制以及变速箱内部的工作方式是实施,而实施对用户是隐藏的。
答案 1 :(得分:6)
一个很好的例子是Java List接口。
这提供了动态向列表中添加或删除元素的方法。那是功能。在该界面中没有表达出这种情况的真实发生,对于List界面的用户来说,也没有关系(太多)。
例如,实现可以是一个双向链接列表,您只需在列表中更改对象之间的“链接”,或者如果使用的数组需要相应地增大/缩小,则取决于< em> implementation )当然,不同的实现选项各有优缺点,但是在许多情况下,您可能会决定不关心它们。
答案 2 :(得分:3)
功能:作用
实施方式:如何实现
答案 3 :(得分:2)
封装:将数据包装到一个单元中。单个单元(类)。在一个类中,有一些成员和数据成员,它们包装在称为class的单元中。例如,您的包是将书和笔放在包中的一个单元。同一班是一个单元。
封装资源:
抽象:隐藏背景详细信息。 OOP提供了这些设施。我们可以将数据保留在提供安全性的对象中。该类还提供了此功能,您无法访问该类的私有数据。如果要在将数据设为私有数据时保护其安全,则只能访问受保护的公共数据。
抽象资源:
答案 4 :(得分:1)
简单来说,请考虑以下代码:
public Data getStoredData(int ID) {
DBConnection conn = DBConnection.getInstance();
conn.connect();
Data data = conn.query("..." + ID);
if(data != null) {
data.setSomeValue('Some Value');
}
return data;
}
术语实现细节是您在函数内部编写的代码。
术语功能,它是方法签名或您要向调用客户端公开的内容。这就是您希望使用方法的方式。
在上面的示例中,功能是public Data getStoredData(int ID)
,而您的实现是驻留在其中的实现。