Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中数据抽象和过程抽象的区别_Java_Abstraction - Fatal编程技术网

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

java中数据抽象和过程抽象的区别,java,abstraction,Java,Abstraction,我试图理解java中数据抽象和过程抽象之间的区别 我理解过程抽象是使用接受形式参数的方法,并对用户隐藏实现。这在PL/SQL语言中完全有意义,因为我可以选择在PL/SQL中单独创建过程 但是我混淆了数据抽象和过程抽象,因为甚至Java中的过程都是作为某个类的一部分实现的。每个类也可以有一些静态方法(publicstatic),包中的其他类都可以使用这些方法 请有人能明确区分这两种语言(用java来说)在面向对象编程中,抽象是主要的支柱之一。在Java中,当涉及到数据抽象时,这意味着在设计/定义类

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

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

但是我混淆了数据抽象和过程抽象,因为甚至Java中的过程都是作为某个类的一部分实现的。每个类也可以有一些静态方法(
publicstatic
),包中的其他类都可以使用这些方法


请有人能明确区分这两种语言(用java来说)

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


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

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

public void printFibonacci(int n){
//your code to print Fibonacci numbers
}
通过这种方式,用户可以轻松地使用该过程,甚至不必怀疑函数内部发生了什么。您知道它将打印给定输入的斐波那契

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

  • 接口类
  • 允许的行为