欢迎来到天天文库
浏览记录
ID:48985246
大小:105.00 KB
页数:15页
时间:2020-01-29
《尹其畅 类与对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计--类与对象类的作用类界面与类实现类成员的访问控制对象的创建静态数据成员构造函数与析构函数成员对象的初始化在面向对象之前-实现循环计数器角度循环计数器0~359a为当前角度a的下一个角度(a+1)%360a的上一个角度(a–1+360)%360在面向对象之前-实现循环计数器如果处理的问题不是从零开始,可以通过减去最小值的方式转换,如月份1~12m为当前月份m的下一个月份((m–1)+1)%12+1m的上一个角度((m–1)-1+12)%12+1在面向对象之前-实现循环计数器写成函数的形式increment();decre
2、ment();get_value();set_value();set_mode();在面向对象之前-实现循环计数器内部数据(以上函数都要访问,所以全局变量,不想被以上函数外的函数访问,所以静态变量)staticmax_value;staticmin_value;staticcurrent;例7_循环计数器的非类实现面向过程的程序设计面向过程的程序设计传统的面向过程程序设计是围绕功能进行的,用一个函数实现一个功能。一个函数可以使用和修改任何一组共用数据。程序中要使用多个计数器怎么办?例如:学生都有姓名、性别、年龄、年级、学号等,对学生的操
3、作有分配学号、年级变化等。这就是面向对象的程序设计的基本思路。把同一对象的数据和操作封装在一起。面向对象的程序设计1.对象客观世界中任何一个事物都可以看成一个对象。对象可大可小。对象是构成系统的基本单位。对象的两个要素:属性和行为。属性:对象的特征,成员变量描述。行为:对象的动作,成员函数完成。面向对象的程序设计面向对象的基本概念和特征1.对象(object)与类(class)指将数据(内部状态)和使用这些数据的一组基本操作(行为)封装在一起的统一体。指一个事物,称实例(instance)一组类似事物的抽象,称类(class)2.信息隐
4、藏与封装将一个模块的内部数据或操作隐藏起来,其他模块只能通过该模块提供的公开操作来访问该模块信息隐藏由封装机制来实现。3.封装:用两种方法实现(1)文件模块例子:采用文件模块来封装,实现循环计数器功能此程序共包括2个源程序以及1个头文件CIRNUM1.H头文件仅包含循环计数器对外公开的函数原型,不涉及内部数据与函数定义;CIRNUM1.CPP该源程序是循环计数器的实现文件,以.CPP作为后缀名字,包括了内部数据及函数定义。文件中引用CIRNUM1.H:#include"cirnum1.h"CIRDEMO1.CPP该源程序包括主函数,使用
5、循环计算器(2)类:用类实现封装C++语言通过建立一个合适的循环计数器类,将这些数据与函数结合在一起,形成一个新的数据类型,称为类类型。类的定义一、类声明类是对一群具有相同属性、表现相同行为的对象的描述类的一般形式:class类名{public:公有数据和函数private:私有数据和函数};类中定义的数据(变量)称为数据成员类中定义的函数(行为操作)称为成员函数例:循环计数器类classCIRCULAR_NUMBERS{public:voidset_mode(intmin,intmax){//设置循环计数器的上、下限min_val=m
6、in;max_val=max;return;}voidset_value(intvalue){//设置循环计数器的当前值current=value;return;}intget_value(){//查询循环计数器的当前值returncurrent;}voidincrement(){//循环计数器加一intmode=max_val–min_val+1;current=((current–min_val)+1)%mode+min_val;return;}voiddecrement(){//循环计数器减一intmode=max_val–min
7、_val+1;current=((current–min_val)-1+mode)%mode+min_val;return;}private:intmin_val;//最小值intmax_val;//最大值intcurrent;//当前值};对象的创建类:数据类型具有类类型的变量称为对象,对象称为类的实例。intmain(){CIRCULAR_NUMBERSangle;//角度循环计数器CIRCULAR_NUMBERSmonth;//月份循环计数器angle.set_mode(0,359);//设置角度取值范围从0到359angle.s
8、et_value(250);//设置当前角度为250month.set_mode(1,12);//设置月份取值范围从1到12month.set_value(11);//设置当前月为11月}set_mode(
此文档下载收益归作者所有