面向对象的编程问题

时间:2011-03-02 12:32:25

标签: java oop

我只是想知道。是什么让OOP明显优于传统的结构化程序。我理解封装,继承,多态等等。如果有更低级别的功能,可能是硬件级别,OOP可能更好,我想知道。非常感谢提前!

7 个答案:

答案 0 :(得分:4)

我不知道在所有情况下我们都可以说“明显更好”。我们不同意衡量什么,所以“更好”很难判断。而“显着”?更难。

面向对象的风格最适合所有问题也是不正确的。

我认为面向对象是因为它很好地映射到一个易于用对象建模的世界。将问题划分为将状态和行为保持在一起的软件组件,可以更容易地将大问题分解为更小,更易于管理的部分。允许组件拥有其数据可以更容易地了解对状态所做的更改。

但我们仍然有程序,功能和声明式的编程风格。

答案 1 :(得分:3)

如果你不计算indirect jumps,那么硬件级别上没有任何东西可以为OOP提供低级优势。 (但是在OOP普及之前,跳台已经使用了很长时间。)

OOP的主要优点是易于建模。这也列出了OOP的有用性,因为有些问题不适合OO类型建模。

答案 2 :(得分:3)

他们会告诉你很多事情,但最重要的两个原因是:

  1. 根据对象进行思考对人类来说是理想的。
  2. 可维护性

答案 3 :(得分:2)

所有程序都在同一硬件上运行。软件开发领域的每个发展步骤总是只能使表达我们想要的内容变得更加简单。

答案 4 :(得分:2)

OOP用于使人类更容易编程。但是接近人类意味着从机器上获得更多,所以你可以说,OOP并不是真的意味着非常低级别的任务。

答案 5 :(得分:0)

我不认为OOP适用于较低级别(如果我理解正确的话),因为它是一种抽象(与许多其他软件开发范例一样),并且当您使用某些更高级别的构造构建软件时,它是有意义的,但不是机器代码。

在任何情况下,如果你在低级别引入OOP(假设在CPU级别允许继承),那么很可能是在现有的CPU命令之上实现的更高级别的抽象。

答案 6 :(得分:0)

OOP不是硬件,物理问题。

关于如何找到更好的编码实践,这些实践能够提高生产力,效率,可扩展性和可维护性。

例如,它已经发展,因为它提供了在过去20年中展示成功案例的功能,首先不是OOP Smalltalk,C ++到Java,C#,Ruby,Python等等。

关于硬件优化的任何其他观点都是具体的OOP编程语言编译器或解释器的实现决策。

因此,在一天结束时,问题应该是,“这种基于OOP的编程语言硬件是否优于其他基于结构化编程的编程语言?”。