这学期开了门关于对象工程的课程,所以前面也是不可避免的又接触到了这些知识,所以顺便来做个总结。

什么是面向对象?

面向对象思想来源于对现实世界的认识。现实世界纷繁复杂,难以认识和理解。人们学会了把这些错综复杂的事物总结分类,从而使人类社会的运行变得井井有条。比如我们把各行各样的人抽象出人的概念,各式各样的汽车抽象出车的概念。面向对象的思想就是把复杂的事物抽象

什么是对象?

对象代表了现实世界中的一个独立实体或概念。对象可以是具体的物体,如一辆汽车,也可以是抽象的概念,如一个银行账户。对象具有状态(属性)和行为(方法)。状态表示对象的特征或属性,行为表示对象能够执行的操作。例如,一辆汽车的属性可以包括颜色、型号和速度,而行为可以包括加速、减速和转弯。

对象是类的实例。当我们创建一个类的实例时,就生成了一个对象,该对象继承了类中定义的属性和方法,并可以根据需要进行自定义设置。

PS:抽象是计算机中经常提及到的、一系列的提炼的过程,不必纠结于具体定义。

类的定义

上文所提到的人和车都代表着一类事物,有着特定的状态,比如人的年龄、性别、职业,车的品牌、功率等,都是在描述事物的状态。每类事物也有一定的行为,如人的走、跑、跳,车的加速、减速。这些不同的状态和行为将各类事物区分开来。

是具有相同属性和行为的对象的抽象。

类的结构

任何类的结构都由三部分组成:标识、属性和方法。

标识给出类的名称,是对一类对象总的称呼。

属性记录了类的静态特征,也称为成员变量或实例变量。属性特征是一个类的所有对象都具有的。例如一辆汽车都有颜色、品牌等属性特征。而一个类的不同对象的属性具有不同的属性值,也就是同一个类的对象有相同的属性名,但是值不同。属性是可以被访问和修改的。

方法描述了一个类具有什么样的动态能力,可以执行什么操作。

类的特性

封装性

实现封装需要满足三个条件:

  • 有一个清楚的边界
  • 有确定的接口
  • 受保护的内部实现。

封装就是信息隐蔽,把类和对象的实现细节对外界隐藏起来。将对象属性的数据和方法的代码集中封装在类的内部,对外只通过提供的接口进行访问,无法访问内部的数据和方法。

封装的好处在于提高了代码的安全性,防止了外部的非法访问,同时也使得代码更加易于维护和扩展。

继承性

继承又称泛化,是从一个已存在的类创建一个新类的过程,新创建的类称为子类,它继承了父类的属性和方法。继承允许我们重用和扩展现有的代码,而不必从头开始重写。

就像是现实中生物分类的界门纲目科属种,大黄是狗的一种,狗是犬科的一种,犬科又是哺乳动物的一种。

继承的主要目的是为了代码重用,同时也提高了代码的可维护性。

单继承和多继承

顾名思义,单继承时一个子类只有一个父类,多继承时一个子类可以有多于一个的父类。

多态性