Skip to content

1. 面向对象理解

1.1. 基本概念

面向对象是一种抽象化的编程思想,是很多编程语言中都有的一种思想。
面向对象编程(Object-Oriented Programming, OOP)是一种以对象为中心的编程范式,通过将数据(属性)和操作数据的行为(方法)封装到对象中,从而提高代码的模块化、重用性和维护性。

1.2. 发展历程

  • 起源探索(20世纪60 - 70年代):1967年,挪威人开发出首个面向对象语言Simula,引入类和对象概念用于模拟现实。70年代,施乐PARC的Alan Kay团队开发Smalltalk,强调一切皆对象,引入消息传递机制
  • 发展普及(20世纪80 - 90年代):1983年,Bjarne Stroustrup基于C语言开发C++,兼顾高效灵活与面向对象特性,在系统和游戏开发中广泛应用。1991年,Sun公司的James Gosling等人开发Java,强调跨平台和安全,推动OOP进一步普及
  • 成熟多元(21世纪初至今):涌现出C#、Python、Ruby等新的面向对象语言,各有特点优势。同时,OOP与函数式编程、面向切面编程等相互融合,例如Java 8支持函数式编程,Scala结合OOP与函数式编程。

2. 编程范式

"编程范式"是一种编程思想的总称,它是指在编写程序时所采用的基本方法和规范。常见的编程范式有面向对象、面向切面、声明式等。

  • 面向对象编程(Object-Oriented Programming):将程序组织为对象的集合,强调数据和操作的封装、继承和多态。典型代表语言:Java、C++、Python。
  • 面向切面编程(Aspect-Oriented Programming):将横切关注点(如日志、事务管理)从主要逻辑中分离出来,以提供更好的模块化和可维护性。典型代表框架:AspectJ。
  • 声明式编程(Declarative Programming):以描述问题的本质和解决方案的逻辑为重点,而非具体的计算步骤。包括逻辑编程、函数式编程、数据流编程等。典型代表语言:SQL、HTML/CSS。
  • 命令式编程(Imperative Programming) :程序由一系列的命令或语句组成,计算机按照这些命令执行操作。这是最早也是最基本的编程范式。C、C++、Java、Python等语言在一定程度上都支持命令式编程风格。

3. 核心思想

面向对象编程(Object-Oriented Programming,OOP)的核心思想主要围绕抽象、封装、继承和多态这四个关键概念展开。

  • 抽象是指从众多的事物中抽取出共同的、本质性的特征,而忽略其非本质的细节。在面向对象编程中,就是将现实世界中的事物抽象为类,类是对一组具有相同属性和行为的对象的抽象描述。
  • 封装是将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元(类),并对外部隐藏对象的内部实现细节,只提供对外的接口来访问和修改对象的状态。
  • 继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,子类可以在父类的基础上进行扩展和修改,从而实现代码的复用和扩展。
  • 多态是指不同的对象可以对同一消息做出不同的响应。在面向对象编程中,多态通常通过方法重写和接口实现来实现。