c++面向对象课件OOP01
合集下载
C中的面向对象ppt文档

public int a; private int b; protected int c; internal int d; private int GetA( ) { return a;} public int GetSum( ) { int r=a+b+c+d; return r;} } class Program { static void Main(string[ ] args) {
using system;
namespace Test
{
class Student
{
public string name;
//姓名
public int age;
//年龄
public void dispdata( )
{ Console.WriteLine(“{0} {1}”, pno, pname); }
readonly
只读成员。这类成员的值只能读,不能写。也就是 说,除了赋予初始值外,在程序的任何部分将无法 更改这个成员的值。
注:internal修饰的成员一个项目里相当于public关键字,因为一个项目默认就 是一个程序集。
using system; namespace Test {
class Access {
Access ac=new Access( ); ac.a=4; ac.b=5; ac.c=7; ac.d=8; ac.GetA( ); ac.GetSum( ); }
6.2静态成员
关于类的数据成员的存放问题……..
6.2.1 静态字段 静态字段是类中所有对象共享的成员,而不是某个对
象的成员,也就是说静态字段的存储空间不是放在每个对 象中,而是和方法一样放在类公共区中。
using system;
namespace Test
{
class Student
{
public string name;
//姓名
public int age;
//年龄
public void dispdata( )
{ Console.WriteLine(“{0} {1}”, pno, pname); }
readonly
只读成员。这类成员的值只能读,不能写。也就是 说,除了赋予初始值外,在程序的任何部分将无法 更改这个成员的值。
注:internal修饰的成员一个项目里相当于public关键字,因为一个项目默认就 是一个程序集。
using system; namespace Test {
class Access {
Access ac=new Access( ); ac.a=4; ac.b=5; ac.c=7; ac.d=8; ac.GetA( ); ac.GetSum( ); }
6.2静态成员
关于类的数据成员的存放问题……..
6.2.1 静态字段 静态字段是类中所有对象共享的成员,而不是某个对
象的成员,也就是说静态字段的存储空间不是放在每个对 象中,而是和方法一样放在类公共区中。
第十四十七部分C面向对象概述教学课件

2.基类与派生类
▪ 基类
原有的类称为基类(或父类)
▪ 派生类
新类称为派生类(或子类)。
▪ 单一继承
派生类只有一个基类。
▪ 多重继承
派生类常常是从多个基类派生出来的,这些基类之间 可能毫无关系。
▪ 单一继承比较简单,多重继承更复杂,
3.单一继承
▪ 单一继承
从一个基类中派生出的继承称为单一继承。
▪ 单一继承派生类的定义形式如下:
<类型> operator <运算符> (<参数表>) {<函数体> }
▪ 运算符重载为友元函数的定义形式:
friend <类型> operator <运算符> (<参数表>) {<函数体> }
5.静态联编和动态联编
▪ 将程序中的函数调用解释为执行特定的函数体被 称为联编(binding)。按照联编所进行的阶段不同, 可分为两种不同的联编方法:静态联编和动态联 编。
1.类和对象
▪ 类和对象的引入,使C++真正成为支持面向对象程序 设计的语言。
类就像蓝图 对象是类的具体实例
▪ 对象最终要通过类实例化!
▪ C++程序中的重点是类而不是函数。
类是程序员定义类型。每个类包含数据和操作数据的一 组函数。类的数据部分称为数据成员(data member), 类的函数部分称为方法(method,有的时候也称为成员 函数)。
声明类之后再定义对象
▪ 定义形式与一般变量定义一样。其基本形式为: 类名 对象;
5.对象的使用
▪ 对象的定义完成以后就可以在程序中使用该对象。
其类型为公有(public),在类的外部都可以通过对象进 行访问。访问的形式如下:
面向对象的程序设计语言C课件468页

八进制表示: \ddd; 例如:\101
十六进制表示: \xhh; 例如:\x41
表2-2 C++中常用转义序列符
符号
含义
\a 响 铃
\n 换 行 符
\r 回 车 符
\t 水 平 制 表 符 ( tab 键 )
\b 退 格 符 ( backspace 键 )
2
int
4
signed [int]
4
unsigned [int]
4
long [int]
4
signed long [int]
4
unsigned long [int]
4
float
4
double
8
long double
10
false, true -128~ 127 -128~ 127 0~ 255 -32768~ 32767 -32768~ 32767 0~ 65535 -2147483648~ 2147483647 -2147483648~ 2147483647 0~ 4294967295 -2147483648~ 2147483647 -2147483648~ 2147483647 0~ 4294967295 3.4E 10-38~ 3.4E 1038 1.7E 10-308~ 1.7E 10308 3.4E 10-4932~ 3.4E 104932
4) 字宽(字节)取决于操作系统和编译器的实现, 可用sizeof验证;
2.2.1 常量
一、整型常量(无小数部分)
1、表示方法 十进制 八进制
3、八进制表示 由0 ~ 7的数字组 成 以0为前缀
十六进制
例:010, -0536
2、十进制表示 由0~9的数字组成 不能以0开始 无前缀
C语言面向对象程序设计ppt课件

函数返回值为指向环链最表新版的整理最pp后t 一个节点的指针
8
3. Jose * count(int, Jose *) 两个参数分别为数小孩的个数、当前节点的指针 函数返回值为数了小孩个数后的当前节点的前一个节点的指针
4. void process(int, int, Jose *) 三个参数分别为小孩总数、间隔数、当前节点的前一个节点 的指针
定义两个类: Ring类 属性: 链表的始地址; 当前指针; 哨兵指针
操作: 按照间隔数确定当前指针; 输出小孩的编号; 将当前小孩从链表中删除; 构造环链表; 析构环链表;
Jose类 属性: 总数; 间隔数; 开始位置 操作: 属性赋初值; 处理所有小孩并找出胜利者
最新版整理ppt
13
//文件为ring.h
1 n
n-1
2 3
...
};
其函数声明如下:
1. int assign(int *, int *, int *)
三个参数分别为指向总数、间隔数、开始位置的指针
函数返回值为1,则初始化成功;为0,则失败
2. Jose * initial(int , Jose *)
两个参数分别为总数和结构指针, 指向待初始化的结构数组
return 1;
}
最新版整理ppt
10
jp
Jose * initial(int n, Jose * jp)
{
int nline=0;
Jose * px = jp;
for(int i=1; i <= n; i++) {
px -> next = jp + i%n;
px ->code = i;
面向对象课件(第一章)

属性赋值
在创建对象时,可以为对 象的属性赋值,以初始化 对象的属性值。
方法调用
对象可以调用其所属类的 方法,以执行相应的操作。
属性和方法
属性
访问修饰符
属性是对象的状态信息,它描述了对 象的基本特征。
类的属性和方法可以通过访问修饰符 来控制它们的可见性和访问权限。
方法
方法是对象的行为,它定义了对象可 以执行的操作。
继承
继承是从已有的类派生出新的类,新类继承了父类的属性和方法,并且 可以添加或覆盖父类的行为。继承有助于代码的重用和扩展。
03
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。
多态可以提高代码的灵活性和可扩展性,使程序能够更好地适应变化。
面向对象编程的基本概念
类(Class)
类是对象的模板或蓝图,它定义了对象的属性和方法。类是一种抽象 的概念,它描述了一组具有相似属性和行为的对象的共同特征。
封装的使用方式
使用访问修饰符
在面向对象编程语言中,可以使 用访问修饰符(如public、
private、protected)来控制对 象的属性和行为的可见性,实现
封装。
定义接口
通过定义接口,规定对象的行为 和属性,实现对象之间的交互和
通信。
继承和多态
通过继承和多态等面向对象特性, 可以在不改变原有代码的基础上 对对象进行扩展和维护,实现封
能。
增强代码可维护性
02
如果父类的代码发生变化,只需修改一处,即可影响所有继承
自该父类的子类。
实现多态性
03
通过继承,可以实现多态性,使得子类可以以自己的方式实现
父类的方法,提高代码的灵活性和可扩展性。
面向对象程序设计第一章课件(共32张PPT)

1.4.1 面向对象的从基逻本辑概上念看,一个对象是独立存在的模块。 (object) 模块内部状态不因外界的干扰而改变,也 (1)具有唯一标识不名会,涉可及以到区其别他于模其他块对;象模。块间的依赖性极 (2)具有一个状态,小由或与几其乎相关没联有的;属各性模值集块合可所独表立征。地被系统所 ((43))一有个一对组象操的作成方员组破法仍即合 坏可服选 其以务用 他是,一, 模每个也 块个对可 。操象作被。决程定序对员象重的用一种,行不为必。担心
1.2 面向对象是软件方法学的返朴归真
客观世界是由许多具体的事物、抽象的概念、 规则等组成的,我们将任何感兴趣或要加以研 究的事、物、概念统称为对象Object。
每个对象都有各自的内部状态和运动规律, 不同对象之间通过消息传递进行相互作用和联 系就构成了各种不同的系统。面向对象的方法 正是以对象作为最基本元素的一种分析问题和 解决问题的方法。
采用对象的观点看待所要解决的问题,并将其抽象为应用系 统是极其自然与简单的,因为它符合人类的思维习惯,使得应用系 统更容易理解。同时,由于应用系统是由相互独立的对象构成的,使 得系统的修改可以局部化,因此系统更易于维护。
软件开发从本质上讲就是对软件所要处理的问题域进行正确
的认识,并把这种认识正确地描述出来。既然如此,那就应该直 接面对问题域中客观存在的事物来进行软件开发,这就是面向 对象。另一方面,人类在认识世界的历史长河中形成的普遍有 效的思维方法,在软件开发中也应该是适用的。在软件开发中 尽量采用人们在日常生活中习惯的思维方式和表达方式,这就 是面向对象方法所强调的基本原则。软件开发从过分专业化的 方法、规则和技巧中回到了客观世界,回到了人们的日常思维, 所以说面向对象方法是软件方法学的返朴归真。
3.面向对象程序设计:是在面向过程的程序设计基础上的质 的飞跃。面向对象方法的产生,是计算机科学发展的要求。 面向对象的技术在系统程序设计、数据库及多媒体应用等 领域都得到广泛应用。
1.2 面向对象是软件方法学的返朴归真
客观世界是由许多具体的事物、抽象的概念、 规则等组成的,我们将任何感兴趣或要加以研 究的事、物、概念统称为对象Object。
每个对象都有各自的内部状态和运动规律, 不同对象之间通过消息传递进行相互作用和联 系就构成了各种不同的系统。面向对象的方法 正是以对象作为最基本元素的一种分析问题和 解决问题的方法。
采用对象的观点看待所要解决的问题,并将其抽象为应用系 统是极其自然与简单的,因为它符合人类的思维习惯,使得应用系 统更容易理解。同时,由于应用系统是由相互独立的对象构成的,使 得系统的修改可以局部化,因此系统更易于维护。
软件开发从本质上讲就是对软件所要处理的问题域进行正确
的认识,并把这种认识正确地描述出来。既然如此,那就应该直 接面对问题域中客观存在的事物来进行软件开发,这就是面向 对象。另一方面,人类在认识世界的历史长河中形成的普遍有 效的思维方法,在软件开发中也应该是适用的。在软件开发中 尽量采用人们在日常生活中习惯的思维方式和表达方式,这就 是面向对象方法所强调的基本原则。软件开发从过分专业化的 方法、规则和技巧中回到了客观世界,回到了人们的日常思维, 所以说面向对象方法是软件方法学的返朴归真。
3.面向对象程序设计:是在面向过程的程序设计基础上的质 的飞跃。面向对象方法的产生,是计算机科学发展的要求。 面向对象的技术在系统程序设计、数据库及多媒体应用等 领域都得到广泛应用。
(2024年)c面向对象程序设计(完整课件)pptx
2024/3/26
18
派生类构造函数和析构函数
2024/3/26
派生类构造函数
派生类的构造函数负责初始化派生类新增的数据成员和继承的基类数据成员。在 构造派生类对象时,首先调用基类的构造函数,然后再执行派生类的构造函数。
派生类析构函数
派生类的析构函数负责释放派生类对象所占用的资源,包括派生类新增的数据成 员和继承的基类数据成员。在销毁派生类对象时,首先执行派生类的析构函数, 然后再调用基类的析构函数。
c面向对象程序设计(完整课件 )pptx
2024/3/26
1
目录
2024/3/26
• 面向对象程序设计概述 • C语言基础 • 类与对象 • 继承与派生 • 多态性 • 模板与泛型编程 • 文件操作与流处理
2
01 面向对象程序设计概述
2024/3/26
3
面向对象程序设计概念
面向对象程序设计(Object-Oriented Programming,OOP)是一种编程范式或 编程风格,它以对象为基础,利用类和对象的概念来设计和实现程序。
6
02 C语言基础
2024/3/26
7
C语言概述
C的起源和发展
介绍C的历史背景、发展 过程和重要里程碑。
2024/3/26
C的特点和优势
阐述C语言的特点,如面 向对象、高效、可移植等 ,以及相比其他语言的优 势。
C的应用领域
列举C在各个领域的应用 ,如系统软件、游戏开发 、嵌入式系统等。
8
C语言基本语法
ofstream
用于写入文件的输出文件流类。
2024/3/26
ifstream
用于读取文件的输入文件流类。
OOP_1面向对象编程
18
制药厂
电话号码 厂址 产品目录 产品配方 原料库存 查询产品价格 产品生产方法 计算产品生产成本
19
制药厂
电话号码 厂址 产品目录 产品配方 原料库存 查询产品价格 产品生产方法 计算产品生产成本 查询原料库存
封装的优点?
能够保护隐私 隐藏类的实现细节 方便加入控制语句 可重用性
20
字符串类string
公共接口: 创建string 销毁string 合并string 计算string长度
27
消息传递与方法调用
• 一个公司有人事部、财 务部、和销售部。 • 每个部门有自己的数据 和处理数据的方法 人事档案 财务报表 销售数据 • 每个部门的数据不对外 公开 • 部门之间通过发送消息 获取对方的数据
实现: 在C++中,通过调用对象的函数成员(方法 )来请求服务,这种调用称为向该对象发送了 一个消息。
方法调用 int main() { string s1=“Hello” int n=s1.length(); return 0; }
1.4 继承与多态
• 继承——提供类复合的实现机制,有助于 实现代码的重用。继承是面向对象程序设 计的关键。 • 多态——提供类对象接口与其具体实现相 分离的手段.多态是面向对象程序设计的 补充。
9
什么是类(class)? 是对现实生活中具有相同属性和行为实 体的抽象描述,是一个抽象的数据类型。 手机类
学生类
10
类的C++描述
class<class name> { <body of class> };
class car { string brand//品牌 string color;//颜色 float price;//价格
C++面向对象程序设计ppt课件第1章
面向对象方法学概述
传统的软件开发方法采用结构化技术(结构化分析、结构 化设计和结构化实现)来完成软件开发的各项任务,强调 的是将一个较为复杂的任务分解成许多易于控制和处理的
子任务,自顶向下顺序地完成软件开发各阶段的任务。
面向对象方法学就是尽量模拟人类习惯的思维方式,使软 件开发的方法与过程尽可能接近人类认识世界、解决问题 的方法与过程,从而使描述问题的问题空间(即问题域)与 实现解法的解空间(即求解域)在结构上尽可能一致。
从C到C++
[例1-1] 从C到C++的实例——学生成绩管理。
使用数组 使用结构体 类 struct Student { long lNum; //学号 char cName[12]; //姓名 float fGrade; //成绩 }; class OurClass //声明一个班级类 { Student s[N]; //定义N个学生 void Input(); //输入学生信息 void Print(); //输出学生信息 void Sort(); //按学生成绩进行排序 };
图1-2 继承关系
图1-3 单继承
图1-4 多继承
面向对象程序设计的特点
多态性
多态性是面向对象方法的重要特征。不同的对象,收到同一消息可以产生不 同的结果,这种现象称为多态性。 例如,一个学生拿着象棋,对另一个学生说:“咱们玩棋吧。”
一个小朋友拿着跳棋对另一个小朋友说:“咱们玩棋吧。”
成类。
例如,挪开凳子,人类处理问题的过程是拿起凳子,移到一边。 面向过程的思想是将凳子和挪开作为两个实体来对待(描述凳子的数据和 移动凳子的动作); 面向对象的思想是选择一个对象——凳子,然后向这个对象施加一个动 作——挪开。
面向对象概述ppt课件
n 实例成员:同特定实例相关;没有static修饰;构造函数 总是实例成员。
Person pp;
//声明一个对象
pp.setName(“zhang”); //通过方法改变对象的属性
pp.setAge(20);
cout << “Age is ” << pp.getAge() << endl;
cout << “Name is ” << pp.getName() << endl;
最痛苦的事情不是开始的编程,而是在以后修改它。
NIT Spring 2007, Liuqiyu7, 6
Object-Oriented Programming
面向对象的程序设计(OOP)
n 发源于20世纪60年代, Simula语言中引入了类(Class)的 概念;
n 真正的面向对象程序设计是Smalltalk语言奠定基础的, “面 向对象”一词也是Smalltalk首先采用的;
Object-Oriented Programming
面向对象的基本概念
n 继承
n 通过继承机制, 派生类 (子类)可以继承基类 (父类) 的数据和操作,实现代码重用。
n 子类可从父类继承所有非private成员。
n 子类中可添加特有的属性和方法,也可重写父类的行为 和修改状态,以体现其个性。
n 继承关系是传递的。即如果有类C继承B ,B (间接)继 承A,则C (间接)继承A。
注:旷课一次扣 4 分,迟到一次扣 2 分(若不够从总成绩扣) n 实验成绩=程序×50% + 文档×10% + 答辩×40%
NIT Spring 2007, Liuqiyu7, 2
Person pp;
//声明一个对象
pp.setName(“zhang”); //通过方法改变对象的属性
pp.setAge(20);
cout << “Age is ” << pp.getAge() << endl;
cout << “Name is ” << pp.getName() << endl;
最痛苦的事情不是开始的编程,而是在以后修改它。
NIT Spring 2007, Liuqiyu7, 6
Object-Oriented Programming
面向对象的程序设计(OOP)
n 发源于20世纪60年代, Simula语言中引入了类(Class)的 概念;
n 真正的面向对象程序设计是Smalltalk语言奠定基础的, “面 向对象”一词也是Smalltalk首先采用的;
Object-Oriented Programming
面向对象的基本概念
n 继承
n 通过继承机制, 派生类 (子类)可以继承基类 (父类) 的数据和操作,实现代码重用。
n 子类可从父类继承所有非private成员。
n 子类中可添加特有的属性和方法,也可重写父类的行为 和修改状态,以体现其个性。
n 继承关系是传递的。即如果有类C继承B ,B (间接)继 承A,则C (间接)继承A。
注:旷课一次扣 4 分,迟到一次扣 2 分(若不够从总成绩扣) n 实验成绩=程序×50% + 文档×10% + 答辩×40%
NIT Spring 2007, Liuqiyu7, 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
202.117.179.201
第一章:绪论
Northwest A&F University
本课程要求与说明
使用教材
C++面向对象程序设计. 龚晓庆, 付丽娜, 朱新懿著. 北京: 清华大学出版社. 2011.
C++ Primer, 3rd ed. Stanley B.Lippman, Josee Lajoie 著. 潘爱民, 张丽译. 北京:中国电力出版社. The C++ Programming Language, 3rd ed. Stroustrup, B. 2000. Addison-Wesley.
面向对象的设计
面向对象的编程
面向对象的测试
测试类设计的正确性
根据用户反馈,不断更新完善
面向对象的维护 第一章:绪论
Northwest A&F University
3、为何学习面向对象程序设计
过程式程序设计
(1)数据和过程分离,可维护性与可重用性差 (2)不适于大型程序开发
面向对象程序设计
(1)现实世界的直接模拟 (2)可重用性好,可维护性好 (3)适合大型程序开发
第一章:绪论
Northwest A&F University
例子:树类
树的分类
开花 植物
绣线菊 亚科
树
真双 子叶
单子叶 木兰类 针叶树
银杏
苏铁类
其它
李属
其它
李子
樱花
桃子
杏子
杏仁
第一章:绪论
Northwest A&F University
例子:俄罗斯方块
I J L O
S 类
CTetromino{
参考教材
第一章:绪论
Northwest A&F University
讲授内容
第一章 绪论
第二章
第三章 第四章
C++对C的扩充
类与对象 继承与派生
第五章
第六章 第七章 第八章 第九章 第十章
第一章:绪论
多态性
类模板与STL编程 输入输出流与文件系统 string类字符串处理 异常处理 GUI编程
1.4.1 数据抽象 1.4.2 封装性
ห้องสมุดไป่ตู้
1.4.3 继承性
1.4.4 多态性
第一章:绪论
Northwest A&F University
1.4.1 数据抽象(Data abstraction)
从研究对象中抽取共同的、本质的、与研究问题 相关的特征。
面向对象程序设计的过程就是抽象的过程,将问 题空间中的事物抽象为解空间中的面向对象概念。
第一章:绪论
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Alan Kay
Lisp
Smalltalk
Java Objective C
message
argument
Sends the message “+” to the receiver 3 with argument 4
第一章:绪论
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal
Commercial release 1972
更多对象
第一章:绪论
Northwest A&F University
1.2 类的定义
类(class)是具有相同属性和行为特征的一 组对象的集合,为属于该类的全部对象提供 了抽象的描述。 类是一种复杂数据类型,而对象则是该“类” (数据类型)的一个变量 ← 类类型。
第一章:绪论
Northwest A&F University
奥利-约翰· 达尔克, 利斯登· 奈加特 第一章:绪论
Northwest A&F University
Simula
1967
被认为是第一个面向对象程序设计语言
第一次正式引入了对象的定义、数据抽象和类的 定义以及继承机制 语言特点
Begin Class Char(c); Character c; Begin Procedure print; OutChar(c); End; End;
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Lisp
John McCarthy
Smalltalk
Java Objective C
第一章:绪论
Northwest A&F University
1.1 对象的定义
本课程定义:
对象(现实世界)
现实世界中的某个具体的事物(实物或实体) →一个封装了属性(attribute)与行为(behavior)的实体
对象(计算机世界)
一种包括数据域、方法以及它们之间相互作用关系的 数据结构
关于我?
承担课程:c语言,数据结构,虚拟现实技术
研究方向:自然景物建模与动画技术 /shaojunhu
第一章:绪论
Northwest A&F University
本课程要求与说明
考试
平时成绩(30%)
• 考勤(扣分制度)+实习作业
笔试成绩(70%)
实习作业(程序设计电子批阅系统)
Northwest A&F University
第一章 绪 论
1、对象、类及其特征 2、什么是面向对象程序设计 3、为何学习面向对象程序设计 4、面向对象程序设计语言发展史 5、为何使用C++实践面向对象程序设计 6、C++程序结构
第一章:绪论
Northwest A&F University
1.1 对象的定义
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Lisp
Smalltalk
Java Objective C
第一章:绪论
在一般类中定义的属性或行为,被特殊类继承 之后,可以具有不同的数据类型或表现出不同的 行为
便于不同类对象的统一管理
第一章:绪论
Northwest A&F University
例子: 形状类
第一章:绪论
Northwest A&F University
2、什么是面向对象程序设计
使用对象去设计程序编写代码的一种方法
第一章:绪论
Northwest A&F University
例:树对象
第一章:绪论
Northwest A&F University
树的属性与行为(操作)
属性:树干树枝、树叶、层次关系、树龄、 树皮纹理、树叶纹理、荷尔蒙等 行为(操作):生长、四季变化、修剪、 风中的运动等
第一章:绪论
Northwest A&F University
代码安全性
CTetromino{ 属性:颜色,四个方块的布局,大小,位置,速度,… 行为:平移,旋转,加速,碰撞检测,显示…
第一章:绪论
};
Northwest A&F University
1.4.3 继承性(Inheritance)
继承是指特殊类的对象拥有其一般类的全部属 性与行为
简化了对客观事物的认识和描述,实现了代码 重用
第一章:绪论
Northwest A&F University
2012年9月程序设计语言范型排行
数据来源: 访问时间:2012年9月 第一章:绪论
/index.php/content/paperinfo/tpci/index.html
第一章:绪论
Northwest A&F University
Smalltalk
1972 第一个纯(Pure)面向对象程序设计语言
Primitives such as character and punctuation is treated as an object
3 + 4
receiver
T
Z
属性:颜色,四个方块的布局,大小,位置,速度,… 行为:平移,旋转,加速,碰撞检测,显示… 第一章:绪论
};
对象
CTetromino → I, J, L, O, S, T, Z
Northwest A&F University
第一章:绪论
Northwest A&F University
本课程要求与说明
使用教材
C++面向对象程序设计. 龚晓庆, 付丽娜, 朱新懿著. 北京: 清华大学出版社. 2011.
C++ Primer, 3rd ed. Stanley B.Lippman, Josee Lajoie 著. 潘爱民, 张丽译. 北京:中国电力出版社. The C++ Programming Language, 3rd ed. Stroustrup, B. 2000. Addison-Wesley.
面向对象的设计
面向对象的编程
面向对象的测试
测试类设计的正确性
根据用户反馈,不断更新完善
面向对象的维护 第一章:绪论
Northwest A&F University
3、为何学习面向对象程序设计
过程式程序设计
(1)数据和过程分离,可维护性与可重用性差 (2)不适于大型程序开发
面向对象程序设计
(1)现实世界的直接模拟 (2)可重用性好,可维护性好 (3)适合大型程序开发
第一章:绪论
Northwest A&F University
例子:树类
树的分类
开花 植物
绣线菊 亚科
树
真双 子叶
单子叶 木兰类 针叶树
银杏
苏铁类
其它
李属
其它
李子
樱花
桃子
杏子
杏仁
第一章:绪论
Northwest A&F University
例子:俄罗斯方块
I J L O
S 类
CTetromino{
参考教材
第一章:绪论
Northwest A&F University
讲授内容
第一章 绪论
第二章
第三章 第四章
C++对C的扩充
类与对象 继承与派生
第五章
第六章 第七章 第八章 第九章 第十章
第一章:绪论
多态性
类模板与STL编程 输入输出流与文件系统 string类字符串处理 异常处理 GUI编程
1.4.1 数据抽象 1.4.2 封装性
ห้องสมุดไป่ตู้
1.4.3 继承性
1.4.4 多态性
第一章:绪论
Northwest A&F University
1.4.1 数据抽象(Data abstraction)
从研究对象中抽取共同的、本质的、与研究问题 相关的特征。
面向对象程序设计的过程就是抽象的过程,将问 题空间中的事物抽象为解空间中的面向对象概念。
第一章:绪论
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Alan Kay
Lisp
Smalltalk
Java Objective C
message
argument
Sends the message “+” to the receiver 3 with argument 4
第一章:绪论
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal
Commercial release 1972
更多对象
第一章:绪论
Northwest A&F University
1.2 类的定义
类(class)是具有相同属性和行为特征的一 组对象的集合,为属于该类的全部对象提供 了抽象的描述。 类是一种复杂数据类型,而对象则是该“类” (数据类型)的一个变量 ← 类类型。
第一章:绪论
Northwest A&F University
奥利-约翰· 达尔克, 利斯登· 奈加特 第一章:绪论
Northwest A&F University
Simula
1967
被认为是第一个面向对象程序设计语言
第一次正式引入了对象的定义、数据抽象和类的 定义以及继承机制 语言特点
Begin Class Char(c); Character c; Begin Procedure print; OutChar(c); End; End;
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Lisp
John McCarthy
Smalltalk
Java Objective C
第一章:绪论
Northwest A&F University
1.1 对象的定义
本课程定义:
对象(现实世界)
现实世界中的某个具体的事物(实物或实体) →一个封装了属性(attribute)与行为(behavior)的实体
对象(计算机世界)
一种包括数据域、方法以及它们之间相互作用关系的 数据结构
关于我?
承担课程:c语言,数据结构,虚拟现实技术
研究方向:自然景物建模与动画技术 /shaojunhu
第一章:绪论
Northwest A&F University
本课程要求与说明
考试
平时成绩(30%)
• 考勤(扣分制度)+实习作业
笔试成绩(70%)
实习作业(程序设计电子批阅系统)
Northwest A&F University
第一章 绪 论
1、对象、类及其特征 2、什么是面向对象程序设计 3、为何学习面向对象程序设计 4、面向对象程序设计语言发展史 5、为何使用C++实践面向对象程序设计 6、C++程序结构
第一章:绪论
Northwest A&F University
1.1 对象的定义
Northwest A&F University
4、面向对象程序设计语言发展史
族谱(Family tree)
Pascal Object Pascal
Assembler
Fortran
Algol
BCPL
C
C++
C++11
Simula
Lisp
Smalltalk
Java Objective C
第一章:绪论
在一般类中定义的属性或行为,被特殊类继承 之后,可以具有不同的数据类型或表现出不同的 行为
便于不同类对象的统一管理
第一章:绪论
Northwest A&F University
例子: 形状类
第一章:绪论
Northwest A&F University
2、什么是面向对象程序设计
使用对象去设计程序编写代码的一种方法
第一章:绪论
Northwest A&F University
例:树对象
第一章:绪论
Northwest A&F University
树的属性与行为(操作)
属性:树干树枝、树叶、层次关系、树龄、 树皮纹理、树叶纹理、荷尔蒙等 行为(操作):生长、四季变化、修剪、 风中的运动等
第一章:绪论
Northwest A&F University
代码安全性
CTetromino{ 属性:颜色,四个方块的布局,大小,位置,速度,… 行为:平移,旋转,加速,碰撞检测,显示…
第一章:绪论
};
Northwest A&F University
1.4.3 继承性(Inheritance)
继承是指特殊类的对象拥有其一般类的全部属 性与行为
简化了对客观事物的认识和描述,实现了代码 重用
第一章:绪论
Northwest A&F University
2012年9月程序设计语言范型排行
数据来源: 访问时间:2012年9月 第一章:绪论
/index.php/content/paperinfo/tpci/index.html
第一章:绪论
Northwest A&F University
Smalltalk
1972 第一个纯(Pure)面向对象程序设计语言
Primitives such as character and punctuation is treated as an object
3 + 4
receiver
T
Z
属性:颜色,四个方块的布局,大小,位置,速度,… 行为:平移,旋转,加速,碰撞检测,显示… 第一章:绪论
};
对象
CTetromino → I, J, L, O, S, T, Z
Northwest A&F University