抽象中的功能和实现细节之间有什么区别?

时间:2019-02-21 08:45:35

标签: java oop abstraction

我正在学习OOP和Java,抽象的定义是向用户隐藏实现细节的过程,只有功能会提供给用户。

有人可以向我解释功能和实现细节之间的区别吗?

5 个答案:

答案 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),而您的实现是驻留在其中的实现。