概述
面向对象编程(Object-oriented Programming——OOP)是一种计算机编程模型,围绕数据或对象织组软件设计,而不是函数和过程。对象被定义为具有唯一属性与行为的一种数据域。
面向对象编程关注的是开发想要操纵的对象,而不是操作对象所需要逻辑。这种方法为编写大型、复杂、及快速迭代的程序提供了极大的便利性。这类程序包括制造与设计,移动应用程序等;例如,OOP可以用于移动互联网及制造系统中的仿真软件等。
面向对象的程序设计也更有利于团队协同开发,一个项目可以被切分成不同的组。OOP带来的便利性包括代码可重用性、可扩展性以及高效性。
面向对象程序设计的第一步是收集所有程序员想要操纵的所有对象,并确定它们之间的关系,我们通常将这一步称为数据建模。
面向对象的程序结构
这个结构包括以下几个部分:
- 类是用户定义的一种数据类型,充当各个对象、属性和方法的蓝图。类是对现实世界中的某些具有相似性的事物的一种抽象。就像卡车、轿车、自行车、客车等都可以抽象为“车”类。
- 对象是类的一个实例,对象可以与现实世界中的对象或抽象的实体相对应。当类一开始被定义,一个唯一的对象的描述就已经定义了。也就是说,类定义了所有对象的共性,定义了类那么其中的某个个体的描述就已经被定义了。
- 方法是在类中定义的,用于描述一个类的行为的一些函数。
- 属性是定义在类的模板中的,用于描述一个对象的状态。对象的数据将存储在这些属性字段中。
面向对象程序设计的主要原则
封装
这个原则要求,所有的重要信息都包含在一个对象中,并且只有选定的信息可以对外暴露。每一个对象的实现与状态都被私有的保持在一个类的内部。其他类无权访问这个类,或者进行更改。其他类只能调用一系列的公有的函数或方法。这种数据隐藏的特性为程序提供了强大的安全性,以避免数据发生损坏。
抽象
对象只能够暴露其他对象使用这个类的相关的内部机制,隐藏一些不必要的实现代码。这个派生类可以进行功能上的扩展。这样做可以帮助开发者更容易的进行修改或添加新功能。
继承
类可以重用来自其他类的代码。可以指定对象之间的关系与子类,可以帮助开发者在保持同一个层级的情况下重用公共逻辑。面向对象的这个特点强制进行更加详尽的分析,减少开发时间。
多态
可以用多种方式来共享对象的行为。多态允许多种类型的对象实现同一个接口。即同样一个接口,但是实现却可以完全不同。在一些语言中,通过同名的方法接受不同的参数而改变方法的实现来支持方法的多态。