面向对象概念

语言分类

  1. 语言的分类
  • 面向机器
    • 抽象成机器指令,机器容易理解
    • 代表:汇编语言
  • 面向过程
    • 问题规模小,可以步骤化,按步骤顺序处理。
    • 例如:做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做 什么处理。
    • 代表:c语言
  • 面向对象OOP
    • 随着计算机需要解决的问题的规模扩大,情况越来越复杂。需要很多人、很多部门协作,面向过程编程不太适合 了。
    • 代表:C++,java,Python,C#等

面向对象

  • 面向对象是一种认识世界、分析世界的方法论。将万事万物抽象为各种对象。

类class

  • 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。
  • 用计算机语言来描述类,是属性和方法的集合。
    举例:
  1. 你吃鱼
  • 你,就是对象;鱼,也是对象;吃就是动作
  • 你是具体的人,是具体的对象。你属于人类,人类是个抽象的概念,是无数具体的人的个体的抽象。
  • 鱼,也是具体的对象,就是你吃的这一条具体的鱼。这条鱼属于鱼类,鱼类是无数的鱼抽象出来的概念。
  • 吃,是动作,也是操作,也是方法,这个吃是你的动作,也就是人类具有的方法。如果反过来,鱼吃人。吃就是鱼 类的动作了。
  • 吃,这个动作,很多动物都具有的动作,人类和鱼类都属于动物类,而动物类是抽象的概念,是动物都有吃的动 作,但是吃法不同而已。
  • 你驾驶车,这个车也是车类的具体的对象(实例),驾驶这个动作是鱼类不具有的,是人类具有的方法。
  • 属性:它是对象状态的抽象,用数据结构来描述。
  • 操作:它是对象行为的抽象,用操作名和实现该操作的方法来描述。
    • 每个人都是人类的一个单独的实例,都有自己的名字、身高、体重等信息,这些信息是个人的属性,但是,这些信 息不能保存在人类中,因为它是抽象的概念,不能保留具体的值。
    • 而人类的实例,是具体的人,他可以存储这些具体的属性,而且可以不同人有不同的属性。
      哲学
  • 一切皆对象
  • 对象是数据和操作的封装
  • 对象是独立的,但是对象之间可以相互作用
  • 目前OOP是接近人类认知的编程范式

面向对象三要素

  1. 封装
    • 组装:将数据和操作组装到一起。
    • 隐藏数据:对外只暴露一些接口,通过接口访问对象。
      • 比如:驾驶员使用汽车,不需要了解汽车的构造细 节,只需要知道使用什么部件怎么驾驶就行,踩了油门就能跑,可以不了解其中的机动原理。
  2. 继承
    • 多复用,继承来的就不用自己写了
    • 多继承少修改,OCP(Open-closed Principle),使用继承来改变,来体现个性
  3. 多态
    • 面向对象编程灵活的地方,动态绑定

人类就是封装:

  • 人类继承自动物类,孩子继承父母特征。分为单一继承、多继承;
  • 多态,继承自动物类的人类、猫类的操作”吃“不同。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐