面向对象程序设计:从线性表到OOP概念

需积分: 15 0 下载量 128 浏览量 更新于2024-07-12 收藏 5.2MB PPT 举报
"本资源为面向对象编程的课程课件,重点关注线性表的应用和C++的面向对象程序设计。线性表是一种动态数组,能够根据需要自动扩展存储空间,包含指针变量List、最大长度nMax和实际元素数量nElem三个关键参数。面向对象编程(OOP)则强调封装、继承和多态性,相比结构化程序设计更加注重信息和处理的整体性。" 线性表是计算机科学中一种基本的数据结构,它是由若干个相同类型元素构成的有限序列。在这个课件中,线性表被描述为用来存储整数,通过一个指针指向其首地址。当存储的数据超过预先分配的空间时,线性表会动态地增加存储空间以容纳所有整数。线性表的特性包括三个参数:List指向线性表的起始位置,nMax表示线性表的最大容量,nElem表示当前实际存储的元素数量。这种数据结构类似于静态数组,但具有动态扩展的能力。 转向面向对象编程(OOP)部分,这里介绍了由谭浩强编著的《C++面向对象程序设计》。OOP的核心思想是将数据和对其操作封装在一起,形成对象,从而实现数据的抽象和封装,增强了代码的模块性和可维护性。OOP的三大特性包括: 1. 封装性:隐藏对象的内部细节,只对外提供接口进行操作,保护数据安全,减少错误发生。 2. 继承性:子类可以继承父类的属性和方法,实现代码复用,简化系统设计。 3. 多态性:同一消息可以根据发送对象的不同而采取多种不同的行为方式,提高了代码的灵活性。 结构化程序设计(SP)是面向过程的编程方法,主要通过功能分解和逐步求精来解决问题,但它的可重用性和适应大型软件设计的能力较弱。在SP中,程序由一系列处理数据的函数构成,数据结构和算法是两个独立的实体。然而,随着软件规模的增长,这种方法的局限性逐渐显现。 面向对象程序设计(OOP)则弥补了这一不足,它强调将数据结构(类)和算法(方法)结合在一起,形成对象,使得数据处理更加整体化。OOP的设计方法注重对象,而不是过程,这使得程序的结构更加清晰,模块间的耦合度降低,增加了代码的可重用性和可维护性。 以统计正负整数个数为例,结构化程序设计会将其分解为读入数据、统计正负数个数和输出结果这三个模块,并通过函数实现。而在OOP中,可能会创建一个“整数集合”类,包含统计方法,这样数据(整数)和处理(统计)就集成在一个对象中,使得代码更易于理解和管理。 这个课件涵盖了线性表的基础知识以及面向对象编程的重要概念,对于理解数据结构和C++中的OOP有着重要的指导作用。