面向对象

一.面向过程与面向对象

1.面向过程

  • 面向过程编程的核心就是过程二字, 既先做什么, 再做什么, 然后做什么
  • 优点 : 将复杂的问题流程化, 进而简单化
  • 缺点 : 一整个流程只为了解决一个问题, 换另一个问题又需要另一个整套的流程, 牵一发而动全身

2.面向对象

  面向对象只是一种思想,不是具体的某种技术或功能

       对象的本质:就是用来盛放数据和功能对的容器,反过来说能够把数据和功能盛放的容器就是对象

程序=数据+功能

          面向对象编程的核心就是对象二字, 对象是特征与技能的集合体

  • 也可以说对象是一个容器, 用来盛放 数据(特征) 和 功能(技能)
  • 优点 : 提高程序的解耦合性, 进而提高程序的可扩展性, 对某一个对象单独修改, 会立刻反映到整个体系当中
  • 缺点 : 编程的复杂程度远高于面向过程, 并且不能精准的预测到问题的处理流程和结果, 只能让对象之间进行交互才能准确的知道最终的结果

面向对象

ps : 一个软件质量因素有很多: 性能, 可维护, 可扩展, 可移植, 成本, 安全......, 而面向对象解决的仅仅是可扩展性的问题, 所以它也是有局限性的

二.面向对象的三个特性

1.继承

2.封装

3.多态

三.类与对象

1.什么是类

  • 类, 即类别, 种类, 是面向对象设计最重要的概念, 对象是特征与技能的集合体, 而类则是一系列对象相似特征与技能的集合体
⛅在没有学习类这个概念时,数据与功能是分离的 ⛅每次调用都需要重复传入一堆参数, 我们能想到的解决方法是,把这些变量都定义成全局变量 ⛅这样我们将会定义一大堆全局变量,这些全局变量并没有做任何区分,即能够被所有功能使用 ⛅然而事实上只有某一些对象才使用某一些它们所需要的功能, 并不是全部的功能都需要 ⛅言外之意:我们必须找出一种能够将数据与操作数据的方法组合到一起的解决方法,这就是我们说的类了
  • 现实世界与程序中类与对象的关系
⛅"现实世界中 : 先有对象, 再有类 世界上现实有了各种各样的物种:猪,狗,猫,人,然后我们将其归为:猪类,犬类,猫类,人类 ⛅"在程序中 : 先有类, 再有对象 与函数类似, 先定义再调用, 类也是一样, 先定义类, 再调用类 不同的是函数调用时执行函数体代码, 而类则是实例出一个对

2.类的定义与实例化

  • 类名尽量使用驼峰体
上一篇:C++程序员应了解的那些事(80)鸭子类型~duck typing~


下一篇:Head First 设计模式笔记 1.策略模式