- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Think in ActionScript 3.0
1.类的由来1.1? C 语言中的结构体??? 这部分属于历史问题,与技术无关,了解历史可以让我们更好地把握现在和将来。C 语言中的结构体 struct 可以说是类的最原始的雏形。只有 int, float, char 这些基本数据类型是不够的,有时需要用不同的数据类型组合成一个有机的整体来使用。例如一个学生有学号和姓名就可以定义一个 Student 的结构体:struct Student {??? int id;??? char[20] name;} student;
main() {?// 可以使用“对象名.属性” 的方式来操作数据??? student.id = 5;??? student.name = “ZhangSan”;}
1.2 从结构体到类的演化(C —— C++)
?C 中的结构体 ?C++ 中的结构体 struct 结构名 {??? 数据成员}; struct 结构名 {??? 数据成员??? 成员函数} ??? C++ 首次允许在结构体中定义成员函数!那么再将 struct 关键字换成 class 不就是我们现在所看到的类的形态了吗?class Student {?private:??int id;??char[20] name;?public:??void gotoSchool() {}}??? C++ 最初的名字叫做“C with class”(带类的C),经过长时间的发展,最终敲定将其命名为 C++,“++”表示加一操作,代表它比 C 语言更进步,更高级。??? 面向过程的编程就是在处理一个个函数,而现在的面向对象编程处理是函数加数据,形式上就这么点儿差别。也许刚刚接触时它时会感到有些困难,这很正常。一旦你真正了解它,那你一定会爱上它。所以,请大家不要畏惧,技术永远向着更方便,更简单,更高效的方向发展,而不会向越来越难,越来越复杂发展。对于面向对象程序设计(OOP)而言,代表着越来越接近人类的自然语言,越来越接近人类的思维,因此一切都会变得越来越简单。??? 从结构体到类的演变过程中我们看到,类中是可以定义函数的。因此,引出了面向对象三大特性之一,封装。
2.封装(Encapsulation)2.1 封装的概念??? 封装的定义:把过程和数据包围起来,对数据的访问只能通过已定义的界面。在程序设计中,封装是指将数据及对于这些数据有关的操作放在一起。??? 知道这些定义,并不能代表技术水平有多高。但是如果去参加面试也许会用得着。简单解释一下,它的意思是指把成员变量和成员函数放在一个类里面,外面要想访问该类的成员变量只能通过对外公开的成员函数来访问。用户不需要知道对象行为的实现细节,只需根据对象提供的外部接口访问对象即可。??? 这里有一个原则叫做“信息隐藏”—— 通常应禁止直接访问成员变量,而应该通过对外公开的接口来访问。下面,看一个小例子:class Father {??? private var money:int =??? public takeMoney():int {??????? money -= 100;??????? return 100;??? }}??? 定义名为 Father 的类(一个有钱的父亲),类中有一个成员变量 money 它的访问权限为 private 意思是说 money 是 Father 私有的,private 是指只有在这个类里面才能访问,出了这个类就无法访问该成员了,稍后会有关于访问权限更多的解释。??? 类中还定义了 takeMoney() 这个方法,它是 public 的,可以说是对外公开的一个接口。??? 从这个例子中可以看出,任何人要想从 Father 类取一些 money 的话,都只能通过 takeMoney() 这个方法去拿,而不能直接访问 money 这个属性,因为它是私有的。只有通过 takeMoney() 这个公开的方法从能修改 Father 类的成员变量让 money -= 100 —— 每次只能给你 100 元。对外只能看到 takeMoney() 这个方法,该方法如何实现的别人不知道,反正你每次只能得到 100 块。
2.2 封装的好处??? 封装的好处:保证了模块具有较高的独立性,使得程序的维护和修改更加容易。对应程序的修改仅限于类的内部,将程序修改带来的影响减少到最低。
2.3 封装的目的(1)隐藏类的实现细节;(2)迫使用户通过接口去访问数据;(3)增强代码的可维护性。
2.4 封装的技巧??? 按照纯面向对象编程的思想,类中所有的成员变量都应该是 privat
文档评论(0)