什么是面向对象?

来源:互联网 发布:用友nc mac客户端下载 编辑:程序博客网 时间:2024/06/04 17:59

说起面向对象,我唯一能想起来的就是老师曾经说过的一句话:万物皆对象”,要是让我详细的说清楚,我还真的说不出什么是面向对象。

这个问题的出现引发了我对自己学习方法的思考,我总是在追求更多的代码却忽略了底层的思想。
技术一直都在更新换代,决定你高度的是你的思想。

带着什么是面向对象的问题,我在网上看了很多人的回答,也看了很多博客,其中我在博客园看到了一篇 赵学智@行胜于言写的博客,我觉得他说的非常的好。
在博客中他提出了三个问题并回答,什么是对象,为什么要面向对象,怎么才能面向对象?
他提出的问题给了我思考的方向

1.什么是面向对象中的对象?

说起对象,对于我这个标准的理科生来说确实是有点抽象了,那么到底什么是对象?
抽象点说,一个数字是对象,具体点说,一辆车也是对象。
每个对象都有自己静态的属性,以及动态的行为。打个比方,人有男女之分,人会走会跑,其中男,女就是人的静态属性,走和跑就是人的动态行为。

面向对象这个对象,指的是事物在问题领域的抽象。

2.为什么要面向对象?

面向对象可以解决系统的可维护性,可扩展性,可重用性
之所以面向对象能解决这些问题,是因为面向对象的特点:封装、继承、多态

封装

封装可以决定类中哪些属性是开放的(给开放的属性添加修改的方法,例如set方法),哪些属性是封闭的。封装性大大增加了系统的可维护性

继承

子类继承父类,可以继承属性及方法,实现了多态以及代码的重用性,解决了系统的可拓展性和可重用性。

多态

接口的多种不同的实现方法就叫做多态性,当对象都被封装起来的时候要如何面对多种多样的需求?接口就提供了这样的可能。接口是行为的抽象,能为不相关的类提供通用的处理服务,比如鸟会飞,飞机也会飞,就可以让鸟和飞机都实现飞的接口,这实现了系统的可拓展和可维护。

3.怎样才能面向对象?

实现面向对象最关键的在于思想的转变
当拿到需求后就急于实现需求,这是典型的面向过程的思想。

面向对象的不同在于,拿到需求后不要急于得到结果,首先要分析需求中的客体是什么、客体之间的联系
再进一步的扩充模型,最终得到可实现的,符合成本的,模块化的低内聚高耦合的模型。

原创粉丝点击