3.1.1 面向对象的概念
什么是面向对象?
面向对象(Object Oriented)是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。
早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。最经典的面向过程的语言就是C语言。
随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题,面向过程的思想已经无法满足这一需求。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。
什么是对象?
万物皆对象,怎么理解?
比如身边的对象:
一位老师:姓名王亮亮,年龄28岁,职称为讲师,可以做的事情有备课、讲课、批改作业。
一位学生:姓名陈明明,年龄15岁,年级是初三,可以做的事情有听课、写作业、考试。
这里其实抽象出了这两个对象的一些特征:
对象的静态特征:如姓名、年龄、职称、年级等这些可以以量化数值表达的信息。这就是对象的属性,也叫成员变量。
对象的动态特征:可以执行的行为,例如备课、讲课、听课、写作业等。这就是对象的方法,也叫成员函数。
这两个对象之间还具有关联关系:
教师与学生通过某一门课程产生关联,教师教授课程,学生学习课程。
面向对象的三大特性
- 封装
- 继承
- 多态
这些后面详细说明。
3.1.2 类与对象的概念
类是对象的模板,对象是类的实例。
例如上面这个图里有三个对象,他们都是具体的实例,都属于学生这个群体概念,学生就是他们的类。
将具有相同特征的所有对象都集合起来,抽象出其属性和方法,这就是类。
对象1
属性:陈明明,15岁,初三
方法:听课、做作业、考试
对象2
属性:李冬冬,13岁,初一
方法:听课、做作业、考试
对象3
属性:张豆豆,14岁,初二
方法:听课、做作业、考试
将上面这三个对象抽象一下,就得到一个类:
学生类{
属性:姓名、年龄、年级
方法:听课、做作业、考试
}