C+语言程序设计 第4讲:类与对象
C++语言程序设计 第4讲: 类与对象/5
对象的概念 对象是现实世界的实体,是由一组状态和行 为组成的集合。 面向对象的方法:把问题看作成由许多彼此 互相联系的对象组成。 面向对象的程序设计00: Object Oriented Programming 把数据和函数封装在称为对象的包中,公布对象的 接口,而将实现的细节隐蔽起来
对象的概念 对象是现实世界的实体,是由一组状态和行 为组成的集合。 面向对象的方法:把问题看作成由许多彼此 互相联系的对象组成。 面向对象的程序设计OOP:Object Oriented Programming; 把数据和函数封装在称为对象的包中,公布对象的 接口,而将实现的细节隐蔽起来
餐对象是现实世界的实体,是由一组状 态和行为组成的集合。 鼙例1:图书馆 状态:共有多少类图书;每类图书有多少册;读者人数 馆内库存有多少本;正在阅读的有多少本;外借多少 本 行为:办图书证;图书检索;阅览室阅读;外借阅 读 例2:学校 状态:总人数;教师人数;本科生人数;研究生人数;科 研成果; 行为:招生;毕业;授课;实验;考试;科研;
对象是现实世界的实体,是由一组状 态和行为组成的集合。 例1:图书馆 状态:共有多少类图书;每类图书有多少册;读者人数; 馆内库存有多少本;正在阅读的有多少本;外借多少 本;…… 行为:办图书证;图书检索;阅览室阅读;外借阅 读; …… 例2:学校 状态:总人数;教师人数;本科生人数;研究生人数;科 研成果;…… 行为:招生;毕业;授课;实验;考试;科研;……
面向对象的方法:把问题看作成由许 多彼此互相联系的对象组成。 例:学校管理 学校管理工作:学籍管理、教务管理、教师管理、住宿管 理、伙食管理、科研管理 学籍管理:入学、成绩、奖惩、毕业 教务管理:课程设置、排课、质量监督. 住宿管理:宿舍安排、打扫卫生、安全保卫 伙食管理:饭卡管理、承包管理、卫生监督 ●科研管理:项目申请、设备采购、项目鉴定 作为校长不必每件事都去具体管理,他只要设置一个 部门去管理就行了。这些部门就是对象!!! 大的单位的管理必须划分不同的职能部门( Object)
面向对象的方法:把问题看作成由许 多彼此互相联系的对象组成。 例:学校管理 学校管理工作: 学籍管理、教务管理、教师管理、住宿管 理、伙食管理、科研管理、…… 学籍管理:入学、成绩、奖惩、毕业…… 教务管理:课程设置、排课、质量监督…… 住宿管理:宿舍安排、打扫卫生、安全保卫…… 伙食管理:饭卡管理、承包管理、卫生监督…… 科研管理:项目申请、设备采购、项目鉴定…… 作为校长不必每件事都去具体管理,他只要设置一个 部门去管理就行了。这些部门就是对象!!! 大的单位的管理必须划分不同的职能部门(Object)
结构的定义 struct Time i int hour: int minute; int second; J Time就是一个数据类型 Time timeObject, timeArray[101, timePtr 访问结构的成员 cout hour 用结构实现用户定义的类型Time 结构建立数据类型的缺陷: 无初始化,可读性差,可维护性差
结构的定义 struct Time { int hour; int minute; int second; }; Time就是一个数据类型 Time timeObject, timeArray[10], *timePtr; 访问结构的成员 cout hour; 用结构实现用户定义的类型Time 结构建立数据类型的缺陷: 无初始化,可读性差,可维护性差
void ShowTime(int hr,int min,int sec) main ShowTime(9,30,0)i return 0: void ShowTime (int hr int min int sec) c吐t<(hx<10?"o″:W)<<hx<<N: (min<10?"o":"")<<min<<W: <<(sec<10?0″:W")<<sec; 09:30:00
void ShowTime(int hr,int min,int sec); main() { ShowTime(9,30,0); return 0; } void ShowTime(int hr,int min,int sec) { cout << (hr < 10 ? “0” : “”) << hr << “:” << (min < 10 ? “0” : “”) << min << “:” << (sec < 10 ? “0” : “”) << sec; } 09:30:00
struct Clock t int hour int minute int second:)i void ShowTime(const Clock&)i main o Clock myClock=[9,30,0]i ShowTime(myclock)i return 0: void ShowTime(const Clock& c) cout < (c hour <10? on: w<<chour < < (c minute 10? o: W)<< c minute < <(c. second 10? wO:N)<<c. second < endl 09:30:00
struct Clock { int hour; int minute; int second; }; void ShowTime(const Clock&); main() { Clock myClock={9,30,0}; ShowTime(myClock); return 0; } void ShowTime(const Clock& c) { cout << (c.hour < 10 ? “0” : “”) << c.hour << “:” << (c.minute < 10 ? “0” : “”) << c.minute << “:” << (c.second < 10 ? “0” : “”) << c.second << endl; } 09:30:00
类和对象 class Clock t public: 构造函数 Clock o void SetTime (intint, int) 行为:公有函数 void ShowtIme o) private nt hour: int minute: int second 状态:私有函数 1)以关键字: class开始; 2)构造函数: constructor/自动执行初始化 3)公有函数: public//供外部调用 4)私有函数: private/外部不能访问(有一个例外,以后再介绍)
class Clock { public: Clock(); void SetTime (int, int, int); void ShowTime(); private: int hour; int minute; int second; }; 1) 以关键字: class开始; 2) 构造函数: constructor // 自动执行初始化 3) 公有函数: public // 供外部调用 4) 私有函数: private // 外部不能访问 (有一个例外,以后再介绍) 构造函数 行为:公有函数 状态:私有函数 类和对象
Clock:: Clock(// constructor hour =0; minute =0 second =0; void Clock:: Setrime (int hr int min int sec) void main o hour = hr >=0 && hr minute = min >=0&8[ second = sec >=0& Clock C c. Settimo(8,30,30); oid Clock:: Show Time o) C. ShowTime o) cout<<(hour<10?"o〃 c. hour 9; <<( minute<10?"o〃 <( secono<10?"o〃 )< second < endl;
Clock::Clock() // constructor { hour = 0; minute = 0; second = 0; } void Clock::SetTime(int hr,int min,int sec) { hour = ( hr >= 0 && hr = 0 && min = 0 && sec < 60 ) ? sec : 0; } void Clock::ShowTime() { cout << (hour < 10 ? “0” : “”) << hour << “:” << (minute < 10 ? “0” : “”) << minute << “:” << (second < 10 ? “0” : “”) << second << endl; } void main() { Clock c; c.SetTime(8,30,30); c.ShowTime(); c.hour = 9; }
结构与类的比较 癖结构好比是一个无人管理的开放的阅览室,所 有的报刊杂志都放在那里,读者可自主挑选 类则好比是有管理员的图书馆,看书借书必须 通过管理员许可。 C语言只能建一个阅览室,C++可以建一个图书馆
结构与类的比较 结构好比是一个无人管理的开放的阅览室,所 有的报刊杂志都放在那里,读者可自主挑选。 类则好比是有管理员的图书馆,看书借书必须 通过管理员许可。 C语言只能建一个阅览室, C++可以建一个图书馆