java中数据抽象和过程抽象的区别

时间:2016-09-20 14:49:55

标签: java abstraction

我试图理解java中数据抽象和过程抽象之间的区别。

我理解程序抽象是利用接受形式参数并隐藏用户实现的方法。这在PL/SQL语言中完全有意义,因为我可以选择在PL/SQL中单独创建过程。

但是我对数据抽象和过程抽象感到困惑,因为即使Java中的过程也是作为某个类的一部分实现的。每个类也可以有一些静态方法(public static),包中的每个其他类都可以使用。

请有人明确区分这两者(就java而言)

2 个答案:

答案 0 :(得分:2)

在程序抽象中,方法用于捕获程序模式,抽象行为。 例如,在Java中,您可以编写如下内容:

public void printFibonacci(int n){
//your code to print Fibonacci numbers
}

通过这种方式,用户可以轻松地使用该过程,甚至不必怀疑函数内部发生了什么。你知道它将为给定的输入打印斐波纳契。

另一方面,在数据抽象中,类用于抽象相关的有状态值及其相关行为 - 也称为抽象数据类型(ADT)。
例如,在Java中,它包含:

  1. 接口类
  2. 允许的行为

答案 1 :(得分:0)

在面向对象编程中,抽象是主要支柱之一。在Java中,当涉及到数据抽象时,它意味着在设计/定义类本身时,您需要仅识别与该域相关的类的那些属性。例如,如果Person是一个实体,它可以有许多属性,如名字,姓氏,工资,配偶,年龄,身高,体重,血型。但是,如果您正在开发医疗保健领域的应用程序,那么您只想选择那些与医疗保健相关的属性(例如身高,血型)并忽略其余的属性。另一方面,如果您正在开发社交调查应用程序,则不需要这些属性。通过这种方式,识别所需属性并忽略其余属性就是数据抽象。

至于程序抽象,必要的部分是“程序做什么,忽略它是如何做的”。默认情况下,大多数语言都支持它。在Java中,一个类可以在不知道其实现细节的情况下调用其他类的方法。这是程序抽象的一个例子。