面向对象程序设计是什么?

面向对象程序设计(英文: Object-Oriented Programming, 简称OOP),是一种有对象概念的程序编程范式。

”编程范式“(英文:Programming paradigm),也称为编程范型、程序设计法,(范式:即模式、方法),是一种典型的编程风格(方法) ( 不同范式产生的原因:程序员如何看待程序执行,就会产生不同的编程方法。)

”程序设计“表示的是给出解决某种特定问题的程序的过程。那么面向对象程序设计,简单理解就是使用面向对象这种方法来创建出程序的过程。

面向对象其它相关概念

  • 面向对象建模(Object-oriented Modeling,OOM),面向对象程序设计的模型构建方法。
  • 面向对象设计(Object-oriented Design,OOD): 面向对象建模的设计过程。
  • 面向对象分析(Object-oriented Analysis, OOA):面向对象建模的分析过程。

为什么要学习面向对象程序设计?

  1. 几乎所有的主流编程语言都支持面向对象编程
  2. 拥有大量非常优秀的设计原则和设计模式
  3. 目前已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。

面向对象程序设计历史

面向对象程序设计的雏形源自(1960年的Simula语言),Simula引入了"类"的概念,还应用了实例这一思想。 20世纪70年代纯面向对象语言smalltalk,基于Simula语言的影响,在此基础上还引入了继承的概念,因此直到现在,它都是面向对象语言的基础。

面向对象程序设计核心概念

抽象过程(Abstraction):表示根据共同特征所抽象出具体的类的过程。 类型(Kind、 type):对一类具有共同特征的事物的总称。(例如:水果类) 对象(Object):一类事物中具体的一个实体。(例如:苹果,是水果类的一个对象)

  • 抽象过程的本质(分类) 抽象就是将具有共同特征的事物理解为同一类事物的过程。例如:将形状、大小不一的苹果、梨理解为水果。这个过程就是抽象的过程。也就是分类的过程。 然而不同的角度的抽象,导致的效果也是不一样的。例如,对音乐进行抽象,如果是根据音乐风格,可以分古典音乐、摇滚音乐、蓝调音乐等;如果是按照 自己的生活中需求喜欢来分解,则可以分为工作、休息、散步等;

  • 面向对象程序设计的本质 面向对象程序设计的过程,就是对解决具体问题的资源进行抽象的过程。在程序中实现的过程,就是将这些资源分解成一个个的类(type/kind),实际的执行过程, 则是对一个个类的对象进行消息发送(方法调用)。

参考资料:

书籍参考: 《thinking in java》第一章 《java核心编程卷一》