Comparison with object-oriented
programming The focus of procedural
programming is to break down a
programming task into a collection of
variables, data structures, and
subroutines, whereas in
object-oriented programming it is to
break down a programming task into
objects with each "object"
encapsulating its own data and methods
(subroutines). The most important
distinction is whereas procedural
programming uses procedures to operate
on data structures, object-oriented
programming bundles the two together
so an "object" operates on its "own"
data structure. Nomenclature varies
between the two, although they have
much the same semantics:
object-oriented procedural
methods functions objects modules
message argument attribute variable
# 1 楼答案
过程编程和面向对象编程都是不同的编程,是众所周知的苹果和橙子。PP依赖于“子程序”。OOP向“对象”发送“消息”,对象改变对象的“状态”,并向其他对象发送消息;此外,可以扩展行为对象,创建新类型的对象。两者都依赖于任务和副作用。问题可能在一种范式中有自然的解决方案,但在另一种范式中则有巴洛克式的解决方案。也就是说,通过使用传递消息的对象或通过过程,可以很容易地对问题进行建模
编程语言可以支持超出其本机支持的范式,但它需要程序员实现必要的结构。例如,您可以使用C进行OOP;事实上,C的一些OO扩展依赖于产生C代码作为输出的预处理器
当你在学习上取得进步时,你会想看看其他的paradigms,尤其是functional programming。看看logic programming(如Prolog所示)和dataflow programming(参见Pure Data的示例)也没什么坏处
# 2 楼答案
Java是一种主要用于面向对象编程的语言,C是一种主要用于面向过程编程的语言
关于Wikipedia about Procedural programming vs object oriented programming:有一个很好的解释
但是为了让事情变得更基本,你可以想象像你想象的现实世界中的物体,比如汽车,将拥有汽车的所有属性,就像窗户和轮胎一样
# 3 楼答案
我会给你最简单直观的答案
(考虑到Java是一种面向对象语言,C是一种过程语言)
面向对象语言
程序语言
# 4 楼答案
面向对象编程范例告诉您将状态变量封装在称为“对象”的实体中,这些实体通过消息传递进行通信,通常作为带有“特殊”参数的函数来实现
面向对象编程语言是一种旨在简化oo范式使用的语言。它的语义和语法正朝着这个目标发展。继承(基于类或原型)和子类型多态性是使oo的抽象概念在实践中可行的重要技术
# 5 楼答案
哇,对这家伙来说,有很多大的OOP术语。作为一个从过程编程开始,现在主要从事面向对象编程的人,我在概念上是这样看待差异的(没有大的术语):
在C语言中,有一些称为结构的东西可以保存状态。它们看起来有点像对象,例如,您可以有一个名为Car的结构,创建Cars的实例,并设置其make、model和color字段。但是,您不能让Car结构实例执行任何操作。相反,如果要洗车,必须将汽车实例传递给以下外部函数:
OOP语言使用与结构不同的概念,称为类,对象是这些类的实例。暂时忘掉那些大字继承和多态性(一旦你有了类,这些都是更高级的主题)。想想汽车的例子。例如,在Java中,您可以定义一个名为Car的类:
然后,创建一个汽车的实例,如下所示:
这与结构非常相似。现在,OOP的不同之处在于,您可以扩展类定义来定义类方法——它们与过程中的函数类似,只是它们总是对对象进行操作。那么,让我们添加清洗方法:
现在您可以执行以下操作:
希望这个例子能有所帮助。当然,OOP(和过程)远不止这个简单的例子。但核心区别在于拥有“拥有”自己方法的对象类
# 6 楼答案
面向对象语言是围绕着数据结构(称为对象)的思想构建的,每个数据结构都包含自己的数据和行为。通过组合这些对象并让它们彼此交互,您可以设计一个程序,更好地反映您试图解决的问题的领域
例如,在银行应用程序中,您可能有表示帐户的对象,每个对象存储余额等数据,并实现转账等特定行为
在更传统的语言中,您可以将数据和行为保存在不同的位置