面向对象入门

一、面向对象的概念

1.1 什么是面向过程

​  就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

1.2 什么是面向对象

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

  1.面向对象是一种思维方法

  2.面向对象是一种编程方法

  3.面向对象并不只针对某一种编程语言

 

1.3 面向对象和面向过程的区别和联系

  1.面向过程过程侧重整个问题的解决步骤,着眼局部或者具体

   面向过程的优点: 流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果; 效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。。 流程明确,具体步骤清楚,便于节点分析。

   缺点是:需要深入的思考,耗费精力,代码重用性低,扩展能力差,维护起来难度比较高, 对复杂业务来说,面向过程的模块难度较高,耦合度也比较高。

  2.面向对象侧重具体的功能,让某个对象具有这样的功能。更加侧重于整体。

   面向对象的优点:结构清晰,程序便于模块化,结构化,抽象化,更加符合人类的思维方式; 封装性,将事务高度抽象,从而便于流程中的行为分析,也便于操作和自省; 容易扩展,代码重用率高,可继承,可覆盖; 实现简单,可有效地减少程序的维护工作量,软件开发效率高。

   缺点是:效率低,面向对象在面向过程的基础上高度抽象,从而和代码底层的直接交互非常少机会, 从而不适合底层开发和游戏甚至多媒体开发; 复杂性,对于事务开发而言,事务本身是面向过程的,过度的封装导致事务本身的复杂性提高。

二、编程语言中面向对象的实现方式

编程语言对对面向对象的实现主流的有两种方式:基于类的面向对象和基于原型的面向对象。

不管以什么方式实现,都具有面向对象的三大特征:

  • 封装

也就是把客观事物封装成抽象的类或具体的对象,并且类或对象可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

  • 继承

可以让某个类型的对象获得另一个类型的对象的属性的方

  • 多态

不同实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。

2.1基于类的面向对象

典型的语言:Java、C#

对象(object)依靠 类(class)来产生

2.2 基于原型的面向对象

典型的语言:JavaScript

  

三、对象的创建方式

3.1 使用new Object()创建

3.2 工厂模式创建

虽然 Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为解决这个问题,人们开始使用工厂模式的一种变体。

工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程,考虑到在 ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。

3.3 构造函数模式创建

  1. 使用构造函数创建对象,必须使用关键字new ,后面跟着构造函数的名,根据需要传入相应的参数。
  2. 其实使用 new 构造函数() 的方式创建对象,经历了下面几个步骤。
    • 创建出来一个新的对象
    • 将构造函数的作用域赋给新对象。意味着这个时候 this就代表了这个新对象
    • 执行构造函数中的代码。 在本例中就是给新对象添加属性,并给属性初始化值。
    • 构造函数执行完毕之后,默认返回新对象。 所以外面就可以拿到这个刚刚创建的新对象了。

猜你喜欢

转载自www.cnblogs.com/beam101/p/9049825.html