第1章面向对象程序设计概论
- 格式:pdf
- 大小:2.54 MB
- 文档页数:15
第1章面向对象程序设计概述面向对象程序设计(Object-Oriented Programming,OOP)是一种常用的编程范式,其核心思想是将现实世界中的事物抽象为对象,并将对象之间的关系通过消息传递进行交互。
OOP主要包括封装、继承和多态三个特性,通过合理使用这些特性可以使程序更加模块化、灵活和可复用。
封装是OOP的基本特性之一,它将数据和行为封装到一个对象中,使得对象的内部状态对外部不可见,只能通过对象的公共接口来访问。
通过封装,可以隐藏内部的实现细节,提供更高层次的抽象,增强程序的安全性和可靠性。
继承是指通过已有的类(父类)派生出新的类(子类),子类继承了父类的数据和行为,并可以添加新的数据和行为。
继承可以促进代码的重用,减少代码冗余,提高开发效率。
此外,继承也提供了一种层次化的结构,有助于理清对象之间的关系。
多态是指同一种操作作用于不同的对象,可以产生不同的结果。
多态可以增加程序的灵活性和拓展性,减少代码的耦合度。
在OOP中,多态通常通过接口或父类的指针来实现。
由于动态绑定的特性,运行时才真正确定调用的是哪个对象的方法。
除了封装、继承和多态,面向对象程序设计还涉及其他重要的概念和技术。
例如,类定义是创建对象的模板,描述了对象具有的属性和方法。
对象是类的实例,具有独立的内存空间和状态。
消息传递是对象之间相互交互的方式,对象通过发送消息来请求其他对象的服务。
聚合和组合是表示对象之间关系的方法,聚合表示弱的关联关系,组合表示强的关联关系。
在面向对象程序设计中,还有一些设计原则和模式值得注意。
开闭原则(Open Close Principle,OCP)要求软件实体对扩展开放,对修改关闭。
单一职责原则(Single Responsibility Principle,SRP)要求一个类只负责一个职责,保持类的高内聚性。
依赖倒置原则(Dependency Inversion Principle,DIP)要求依赖关系要建立在抽象上,而不是具体类上。
面向对象程序设计概论——讲义软件是计算机的灵魂,软件的开发方法是主导这个灵魂的关键。
软件开发过程经历系统分析、系统设计、编码、测试和维护几个阶段。
软件开发方法是指导软件开发各个阶段工作的理论和方法。
软件设计中选择好的程序设计方法有助于提高软件设计的效率、保证软件的可靠性、软件的可扩充性、改进软件的可维护性。
在软件开发方法中当前发展最成熟应用最广泛的是结构化程序设计方法和面向对象设计方法。
1.1 结构化程序设计方法1.1.1 结构化化程序设计方法产生的背景软件发展速度滞后于计算机硬件的发展已经成为制约计算机产业整体发展的瓶颈。
原因:一、个体化早期计算机软件主要指程序,那时的软件开发就是编写程序。
那时计算机价格昂贵,处理能力有限,使得计算机应用范围窄,处理问题规模小,复杂度低,造成了编写程序的人员以个体的身份出现。
这种机制使得软件开发过程没有任何可遵循的规范,极大地限制了发展规模,现在软件开发已经被“工程化”,从事软件行业的人士已经不再属于个体户,而是工业化社会大生产的一分子。
二、受限于程序设计语言20世纪50年代机器语言、汇编语言编写的程序难以移植。
20世纪60年代高级语言将计算机系统的指令抽象化,形成一种与指令系统无关的描述形式,但这个时期,大多数程序设计语言只停留在强调处理功能上,没有考虑从语言的角度制约程序设计的整个过程,致使编写的程序缺乏结构性。
20世纪70年代计算机应用领域迅猛发展,程序规模不断增大,复杂度不断提高,低效率、低成功率的软件开发过程很难适应社会对计算机的需求。
关键问题表现在两个方面:软件行业的个体化、编写程序过分强调时间和空间的消耗,使得程序的可读性较差。
在这种背景下,人们开始意识到将程序设计纳入科学化、规范化的轨道,并提出了结构化程序设计方法,出现了一批支持结构化程序设计的语言,从此,结构化程序设计语言向着模块化、简明化、形式化的方向发展。
人们越来越重视程序的结构化、可读性,按照结构化程序设计的方法设计程序。