第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年代计算机应用领域迅猛发展,程序规模不断增大,复杂度不断提高,低效率、低成功率的软件开发过程很难适应社会对计算机的需求。
关键问题表现在两个方面:软件行业的个体化、编写程序过分强调时间和空间的消耗,使得程序的可读性较差。
在这种背景下,人们开始意识到将程序设计纳入科学化、规范化的轨道,并提出了结构化程序设计方法,出现了一批支持结构化程序设计的语言,从此,结构化程序设计语言向着模块化、简明化、形式化的方向发展。
人们越来越重视程序的结构化、可读性,按照结构化程序设计的方法设计程序。
2.3.2引用2.4函数2.4.1函数的定义与调用2.4.2函数原型与带默认参数的函数2.4.3函数的参数传递2.4.4内联函数与重载函数2.4.5标准库函数2.5new和delete运算符2.6其他若干重要的C++特性2.6.1符号常量2.6.2变量的定义2.6.3强制类型转换2.6.4string类型2.6.5结构第3章类与对象3.1类3.1.1类的定义3.1.2类成员的访问控制3.1.3成员函数的实现3.2对象3.2.1对象的声明3.2.2对象的创建和销毁3.2.3对象成员的访问3.3构造函数与析构函数3.3.1构造函数3.3.2析构函数3.4this指针3.5子对象和堆对象3.5.1子对象3.5.2堆对象第4章继承机制4.1基类和派生类4.1.1继承和派生的基本概念4.1.2继承的种类4.2单继承4.3派生类的访问控制4.3.1公有继承4.3.2私有继承4.3.3保护继承第5章多态性和虚函数5.1静态联编与动态联编5.1.1静态联编5.1.2动态联编5.2虚函数5.2.1虚函数的作用5.2.2虚函数与一般重载函数的区别5.2.3继承虚属性5.3纯虚函数和抽象类5.3.1纯虚函数5.3.2抽象类5.4虚析构函数5.4.1虚析构函数的定义与使用5.4.2虚析构函数的必要性项目一简单的C++程序1.熟悉VisualC++6.0编译系统的常用功能。
2.学会使用VisualC++6.0编译系统实现简单的C++程序。
3.熟悉C++程序的基本结构,学会使用简单的输入/输出。
项目二引用与函数1.熟悉引用的概念,掌握引用的定义方法,学会引用在C++程序中的应用。
2.掌握函数的定义和调用方法。
3.练习重载函数的使用。
项目三构造函数与析构函数1.熟悉类的定义格式和类中成员的访问权限。
2.构造函数与析构函数的调用时机与顺序。
3.掌握对象的定义以及对象的初始化的时机与方法。
项目四继承与派生1.掌握派生类的定义方法和派生类构造函数的定义方法。
第一章计算机、程序和java概述1.程序设计就是创建(或者开发)软件,软件也称为程序。
2.计算机是存储和处理数据的电子设备。
计算机包括硬件和软件两部分。
3.一台计算机是由以下几个主要的硬件组件构成的:中央处理器(CPU),内存(主存),存储设备(例如磁盘和光盘),输入设备(例如鼠标和键盘),输出设备(例如显示器和打印机),通信设备(例如调制解调器和网卡)4.数据和电信号通过总线在计算机的各个部分之间传输。
5.中央处理器(CPU)是计算机的大脑。
他从内存中获取指令,然后执行这些指令。
CPU 通常由两部分组成:控制单位和算术/逻辑单元。
控制单元用于控制和协调其他组件的动作。
算术/逻辑单元用于完成数值运算(加减乘除法)和逻辑运算(比较)。
6.核是处理器中实现指令读取和执行的部分。
7.二进制数字系统中的数,称为比特(bit,二进制数)8.计算机中字节(byte)是最小的存储单位。
每个字节由8个比特构成。
各种类型的数据(例如,数字和字符)都被编码成字节序列。
9.计算机的存储能力是以字节和多字节来衡量的。
KB<MB<GB<TB10.计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。
11.每个字节都有一个唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据。
因为可以按任意顺序存取字节,所以内存也被称为随机访问存储器。
12.计算机的内存是一种易失的数据保存形式,程序和数据被永久的存放在存储设备上。
但是从内存中读取比从存储设备读取要快得多。
13.存储设备主要有以下三种类型:磁盘驱动器、光盘驱动器、USB闪存驱动器。
14.驱动器是对存储介质(例如,磁盘和光盘)进行操作的设备。
存储介质物理的存储数据和程序指令。
驱动器从介质读取数据并将数据写在介质上。
15.硬盘用于永久的存储数据和程序。
CD指光盘,有三种CD:只读光盘驱动器、可录光盘、和可复写光盘。
可以将数据写到光盘上,然后用新的数据覆盖掉这些数据。