素材牛VIP会员
用最简单的一句话说清,什么是面向对象?他和过程区别是什么?有什么好处?
 Su***er  分类:PHP代码  人气:1692  回帖:19  发布于6年前 收藏

可能我们都在用面向对象方式编程,我们真的理解到他了吗,每个程序员对面向对象的理解也不一样,每当别人问我为什么用对象不用过程时,我总是说不到一个充分的理由,我一般是这么说的,用对象的好处是,代码简洁,重用性高。。。。说说你们的看法和这么些年的总结阿。

讨论这个帖子(19)垃圾回帖将一律封号处理……

Lv6 码匠
无***圣 职业无 6年前#1

楼上说的都挺不错的,但是说好的一句话说清呢。。。

要我说,面向对象比面向过程好的是:人类语言很大程度是面向对象的。(至少中文、英文是。我就会这两个…)

Lv6 码匠
生***炸 UI设计师 6年前#2

以前在大学,跟马士兵老师学习 Java 时,他如是说:

面向过程
汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候,关心的是某一个事件,而不是汽车本身。
编写启动汽车程序。
编写汽车到站程序。
如果汽车坏了,还要编写"修理汽车"程序。

面向对象
先选择操作对象——汽车。在编程序的时候,关心的是汽车本身,让汽车去完成各个动作。
命令汽车——启动。
命令汽车——到站。
如果汽车坏了,命令汽车——修理。

很显然,面向对象是最接近人类思维的编程思想。


Lv 牛魔王
素材牛 PHP开发工程师 6年前#3

能封装的就封装

Lv1 新人
何***孽 软件测试工程师 6年前#4

oo更适合把数据和其对应的操作封装起来,对外隐藏实现细节。

Lv6 码匠
生***炸 UI设计师 6年前#5

抛砖引玉。

Q: 什么是面向对象?
A: 一种编程范式,与面向过程相对,代表一种以数据(对象)为单元的对现实世界的抽象方式。

Q: 面向对象与面向过程的区别是什么?
A: 用程序描述"我吃饭"。面向过程的写法:eat(I, food),面向对象的写法:I.eat(food)。两者最直观的区别是程序的组织方式不同,面向过程的程序以动作(函数)为构建单元,通过在函数中调用其它函数完成对现实世界的描述。面向对象是以数据(名词)为核心,通过对象之间的消息传递构建程序。

Q: 面向对象的好处?
A: 面向对象更符合人类对现实世界的认知,人对抽象的“类”和具体的“对象实例”这些概念从童年起能有很好的理解,例如 "人类"就是一个抽象的 class,而"张三"就是一个属于"人类" class 的 object.面向对象有三大特征:封装、继承、多态,能够避免命名冲突、实现代码复用,对于构建大型程序十分有利。

Lv5 码农
流***雨 交互设计师 6年前#6

现在我们来应该讨论 oop 和 aop 。。

Lv6 码匠
无***圣 职业无 6年前#7

老程序员了,c# JAVA c++ py都走过,现在爱node。那么多年的感觉就是,oo其实就是一种建模方法,简单的说就是你是如何理解这个世界这些业务的,oo只是其中一种。多接触各种不同的思想,才明白其中的差别,别纠结于理论。

Lv1 新人
风***扬 Web前端工程师 6年前#8

个人拙见,仅供参考,以期启发,抛砖引玉。

1. 什么事面向对象?

面向对象就是把跟某一主题(类型称为类,实体叫做对象)的所有方法(即函数)和所有属性(即变量)组合起来,用这种逻辑来组织程序的一种程序开发方法。

2. 与面向过程的区别?

面向过程是通过一个一个的函数堆砌起来来组织程序的,面向的是过程(函数),而面向对象是通过一个一个的类/对象堆砌起来来组织程序的,面向的是对象(类/对象)。

3. 面向对象有什么好处?

当软件的规模不断扩大时,面向过程式的程序开发就会遭遇力不从心,一方面难以应付规模带来的压力,后期难以维护,另一方面代码也难以实现复用,造成重复编码(面向对象通过继承应对)。
因此,面向对象开发很好的解决了大型程序开发的困难,程序组织更为清晰,更容易后期维护。

Lv6 码匠
雪***儿 职业无 6年前#9

封装,继承,多态。

Lv4 码徒
日***天 职业无 6年前#10

化整为零的哲学思想

上一页12下一页
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取