面向过程和面向对象
相关博文
面向过程和面向对象不是对立的,而是相辅相成的。它们都是对软件分析、设计和开发的一种思想,指导着我们以不同的方式去分析、设计和开发软件。
- 面向过程思想:思考问题时,首先考虑“怎么按步骤实现”,并将步骤对应成方法,一步一步,最终完成。适合简单问题,不需要过多协作的情况。
比如:如何开车?第一步干什么,第二步干什么,……,车就开起来了,一个人就能完成。 - 面向过程思想:物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题。
比如:如何造车?发现列出1234这样的步骤根本完成不了,那是因为造车太复杂,需要很多协作才能完成,此时面向对象思想应运而生。
面向过程和面向对象总结:
- 都是解决问题的思维方式,都是代码组织的方式。
- 解决简单问题可以使用面向过程。
- 解决复杂问题:宏观上使用面向对象把握,微观处理上任然是面向过程。
什么是面向对象
- 面向对象编程(Object-Oriented Programming,OOP)
- 面向对象编程的本质:以类的方式组织代码,以对象的方式组织(封装)数据。
- 抽象
- 三大特性:
- 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
- 继承:指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过 “继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用 基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力。
- 多态:多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
- 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。
- 从代码运行角度考虑是先有类后有对象。类是对象的模板。