欢迎来到天天文库
浏览记录
ID:57042489
大小:142.50 KB
页数:80页
时间:2020-07-28
《2019年一面向对象程序设计方案理论课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、面向对象程序设计理论1.1 面向对象的程序设计方法基础1.2 对象和类1.3 继承性1.4 重载1.5 多态性11.1 OOP基础面向对象的程序设计方法(ObjectOrientedProgramming)简称为OOP,它的基本元素是类(Class)和对象(Object)。使用对象模拟自然的或抽象的实体,对用户掩盖了实现的复杂性(封装),并且能使程序员付出尽可能小的代价,获得尽可能大收益(继承),提高软件的开发效率。21.2 对象和类类是对事物的特性及操作的抽象描述,对象是类的实体。从C语言的角度来看,类是结构的自
2、然演化,类就是包含数据声明和函数声明的结构。类既包含了数据又包含了代码,对类中成员的存取是受控制的,这一控制不仅针对数据,也针对代码,类的这个特性被称为封装。3计算过程的演变:手工计算全部手工和脑力完成计算器(面向过程)部分借助非人力因素,但仍需对过程进行控制和管理计算机(面向对象)完全借助非人力因素,运算一旦开始,可以无需人工的介入封装的说明4特性:脚个数物理位置长度宽度高度形状操作:搬动改造类的说明“桌子”类5定义类classCounter{longcount;public:voidSetValue(long);l
3、ongGetValue();};关键字class引导类声明Counter是类标识符类体分号6使用类类是一个模板,就象数据类型一样,使用的时候必须定义类变量。定义类变量称为类的实例化,类的实例化变量就是对象。voidmain(){Counterpeople;longvalue;people.SetValue(0);value=people.GetValue();}对象是具有某一个类所描述的共性的,但又有各自特性的个体。7类存取控制类的成员的使用者有三类:1.类本身2.一般用户3.派生类每种使用者权限不同,对应与不同的使用
4、权限,有不同的关键字说明。8类私有成员(private)类本身(或类的友元)可以存取类的私有成员。派生类不能存取其父类的私有成员。因为类必须在程序中使用,所以类必须至少有一个非私有的成员。类成员的存取控制缺省为私有类型。9类私有成员(续)classPrivateClass{longvalue;voidf1();voidf2();};voidmain(){PrivateClassobject;longl=object.value;object.f1();object.f2();}提问:上述程序可以达到预期效果吗?类私有成
5、员(续)10类公有成员(public)在程序中使用给定类的对象,必须能存取成员数据、成员函数或两者。 为使这些成员在程序中可以被存取,必须在类中声明公有部分。在公有部分定义的内容允许被其他对象无限制地存取。通常可以有控制地使用公有成员存取私有数据,调用私有成员函数完成工作。11类公有成员(续)classPublicExample{public:intvariable;voidfunction();};voidmain(){PublicExampleobject;inti=object.variable;object.
6、function();}12类保护成员(protected)classA{protected:intvalue_a;};classB:publicA{public:voidFB();};classC:publicB{public:voidFC();}voidB::FB(){value_a=0;}voidC::FC(){value_a=0}13问题classA{intvalue_1;protected:intvalue_2;voidFA_1();public:intvalue_3;voidFA_2();};classB:
7、publicA{public:intvalue_4;voidFB();}问:在类B的FB函数中可以直接存取的成员有哪些?问:通过类B的对象在程序中可以直接访问的成员有哪些?14特殊类成员特殊类成员1、构造函数(constructor)2、析构函数(destructor)15构造函数构造函数是用来建立某给定类的对象的。一个类可以不定义构造函数,也可以定义一个或多个构造函数。编译系统保证类的构造函数先于其他函数被调用。16构造函数(续一)classCounter{longvalue;public:Counter();};C
8、ounter::Counter(){value=100;}voidmain(){Counterc1;return;}构造函数Counter()它有什么特点?17构造函数(续二)classCounter{longvalue;public:Counter();};Counter::Counter(inti){value=i;}void
此文档下载收益归作者所有