java 中数据抽象和过程抽象的区别
Difference between Data abstraction and procedural abstraction in java
我试图理解 java 中数据抽象和过程抽象之间的区别。
我理解过程抽象是利用接受形式参数的方法并对用户隐藏实现。这在 PL/SQL
语言中完全有意义,因为我可以选择在 PL/SQL
.
中单独创建过程
但我对数据抽象和过程抽象感到困惑,因为甚至 Java 中的过程也是作为某些 class 的一部分实现的。每个class也可以有一些静态方法(public static
),包中的每个其他class都可以使用。
谁能把这两者区别清楚(java)
在面向对象编程中,抽象是主要支柱之一。在 Java 中,当涉及到数据抽象时,这意味着虽然 designing/defining 是 class 本身,但您只需要识别 class 的那些与该领域相关的属性.例如,如果Person是一个实体,它可以有名字、姓氏、薪水、配偶、年龄、身高、体重、血型等许多属性。但是,如果您正在为医疗保健领域开发应用程序,那么您只想选择那些与医疗保健相关的属性(例如身高、血型),而忽略其余的。另一方面,如果您正在开发社会调查应用程序,则不需要这些属性。这样,识别出需要的属性,忽略其余的就是数据抽象。
至于过程抽象,必须的部分是"What the procedure does and ignoring how it does it"。默认情况下,大多数语言都支持它。在 Java 中,一个 class 可以在不知道其实现细节的情况下调用另一个 class 的方法。这是过程抽象的一个例子。
在程序抽象中,方法用于捕获程序模式,对行为进行抽象。
例如,在 Java 中,您可以这样写:
public void printFibonacci(int n){
//your code to print Fibonacci numbers
}
这样一来,用户就可以很方便的使用程序,甚至不用去想函数内部到底发生了什么。你知道它将打印给定输入的斐波那契。
另一方面,在数据抽象中,类 用于抽象相关的有状态值及其相关行为——也称为抽象数据类型 (ADT)。
例如,在Java中,它包括:
- 界面类
- 允许的行为
我试图理解 java 中数据抽象和过程抽象之间的区别。
我理解过程抽象是利用接受形式参数的方法并对用户隐藏实现。这在 PL/SQL
语言中完全有意义,因为我可以选择在 PL/SQL
.
但我对数据抽象和过程抽象感到困惑,因为甚至 Java 中的过程也是作为某些 class 的一部分实现的。每个class也可以有一些静态方法(public static
),包中的每个其他class都可以使用。
谁能把这两者区别清楚(java)
在面向对象编程中,抽象是主要支柱之一。在 Java 中,当涉及到数据抽象时,这意味着虽然 designing/defining 是 class 本身,但您只需要识别 class 的那些与该领域相关的属性.例如,如果Person是一个实体,它可以有名字、姓氏、薪水、配偶、年龄、身高、体重、血型等许多属性。但是,如果您正在为医疗保健领域开发应用程序,那么您只想选择那些与医疗保健相关的属性(例如身高、血型),而忽略其余的。另一方面,如果您正在开发社会调查应用程序,则不需要这些属性。这样,识别出需要的属性,忽略其余的就是数据抽象。
至于过程抽象,必须的部分是"What the procedure does and ignoring how it does it"。默认情况下,大多数语言都支持它。在 Java 中,一个 class 可以在不知道其实现细节的情况下调用另一个 class 的方法。这是过程抽象的一个例子。
在程序抽象中,方法用于捕获程序模式,对行为进行抽象。 例如,在 Java 中,您可以这样写:
public void printFibonacci(int n){
//your code to print Fibonacci numbers
}
这样一来,用户就可以很方便的使用程序,甚至不用去想函数内部到底发生了什么。你知道它将打印给定输入的斐波那契。
另一方面,在数据抽象中,类 用于抽象相关的有状态值及其相关行为——也称为抽象数据类型 (ADT)。
例如,在Java中,它包括:
- 界面类
- 允许的行为