面向对象笔记 部分内容初稿试读 征求坛友意见和建议
时间:2011-05-19
来源:互联网
我这篇教程的目的是教设计模式,对于面向对象的一些基础概念,我只作补充说明,不作完整的基础扫盲,
因此请读者根据相关的标红字查找文字性质的说明资料,然后再在理解了基本概念的基础上, 阅读下面的内容,谢谢!!
类:
什么是类? 正确来说,类是数据及行为的集合对象!!
什么是数据?什么是行为? 人的名字就是数据,人可以行走这个就是行为,或者说,MP3播放器的当前播放时间是数据,播放、暂停等是行为。
类其实是一种数据类型,就像uint Number String等数据类型一样,是为了让计算机声明数据时,有一个数据类型参照,
就像声音 var s:Sound = new Sound(); //如果没有Sound这个类,计算机根本就不知道如何创建Sound这个类的实例对象s
类在生物学角度上来说,有点像是基因,就是说如果它没实例化,那它就像基因那样,属于一个不存在可操作性的对象
要通过实例化(怀孕),创建出可操作的实例(baby),才具可操作性(一个真真正正存在世界上的人类生物),否则基因也只是一个生命创建的蓝本,只是理论的东东
基因里记录着生命的五官、四肢、心肝脾肺肾、大脑、血管等数据,对比起来,就像类里面定义的数据及行为
下面我们定义一个MP3的基本类
package
{
class MP3
{
var _当前时间:Number = 0;
var _是否循环播放:Boolean = true;
function MP3():void {
}
function 播放():void {
}
function 暂停():void {
}
}
}
在这里我们先不用理会那些public private之类的访问控制符,单纯讨论类的基本格式
类的基本格式就是这样
package 包路径
{
class 类名
{
var 属性名称:数据类型 = 值;
function 方法名():void {
}
}
}
为什么要出现类呢,因为要面向对象,要靠类来封装出对象,
就像Array数组类,它有length属性 和 push方法,这些数据和行为是封装在Array类里面的
类是面向对象的基本单位,类生成的对象实例,我们可以设置它的状态,操作它的行为,针对一个对象操作,是接近真实世界的思维方式
面向过程编程的基本单位是函数,一个一个function分成的功能模块,我们只可以向函数传递参数,或更改变量的值,针对一堆数据操作,只是计算机世界的一种流程化思维方式
面向对象:
何谓面向对象呢?在学习之前,我们有必要要把它与 面向过程 作一个比较,以清晰突显出面向对象编程的特点!!
以使用flash做一个mp3播放器为例,如果以一般aser的写法,很容易就会类似这样构思
1.MP3应该有播放、暂停、上一首、下一首这些基本功能
2.然后是设计界面,到底是像windows media player的 ,还是像千千静听的,根据设想画出界面,和做一些按钮button出来
然后有了上面这些总结,就可以写代码了
var _s:Sound = new Sound();
然后一切代码都是围绕这个Sound来load 、play、stop等
这就是面向过程的编码方式,以计算机执行流程的顺序,来考虑程序的功能
当然啦,如果优秀程序员,使用面向过程编程时,理论上也可以写出很好的程序结构,但让我们再来看看面向对象
如果面向对象设计mp3是如何设计呢?
1.皮肤界面等是可以更换的,应该独立封装成一个功能模块;
2.控制播放暂停功能是固定的功能,这个是属于控制模块,也独立封装;
3.最原始的Sound是属于数据模块,这个也应该独立封装成一个模块
大概的代码如下
package{
[ 本帖最后由 HSZZLZL 于 2011-5-19 00:57 编辑 ]
作者: HSZZLZL 发布时间: 2011-05-19
当然也是尽量不偏离计算机语言,不天马行空地单纯讲类比的例子,要从类比的例子中相应关联到计算机上的代码原理去
不过会不会感觉太繁琐呢?
作者: HSZZLZL 发布时间: 2011-05-19
作者: HSZZLZL 发布时间: 2011-05-19
然后是简单工厂模式打头阵 作一个OOP开篇的感性认识
然后提及六大设计原则
单一职责
迪特米法则
开放封装原则
依赖倒转原则
接口隔离原则
里氏代换原则
然后再一个个模式编排下去,在每个模式中反复提及到上面说到的名词,作相应的代码例证
反正学设计模式目的就是提高面向对象思想,然后达到无招胜有招,脱离模式一样可以写出有框架作用的良好代码
作者: HSZZLZL 发布时间: 2011-05-19
作者: HSZZLZL 发布时间: 2011-05-19
避免一开头提出来 过于空洞,难于理解,令人埋头困死在里面
有点想这样编排
作者: HSZZLZL 发布时间: 2011-05-19
考虑着要讲些什么的,因为已经打了招呼,讲不完,再分多几次交流会我主持,
半夜了,心里还在考虑着组织要讲的内容要点。。。。。程序员啊,思维一到深夜就是活跃~~~~~~~~~
作者: HSZZLZL 发布时间: 2011-05-19
用过出生的baby来类比,baby出生的时候,大脑收到信号,开始启动呼吸等器官 肺叶打开等,baby才会全身机能正常工作
否则就像没有构造函数那样,创造出来后,不会工作,死尸一条!!!
有一定的可类比性
作者: HSZZLZL 发布时间: 2011-05-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28