1.什么是对象?
简而言之,对象就是被关注的目标。如果我们要模拟一个房屋系统,我们可以把这个房屋称为一个对象,但这个对象对于我们的系统来说太大了(如果模拟一个城市系统,以房屋为单位到还合适),于是我们可以再细分一下,细分的方法有很多种,比如:按建筑材料分为砖块、水泥、木头和钢筋,按部件划分为门、窗、墙、房顶。前一种的划分对于多数人来说用处不大,并且这些材料通常是作为最基础的东西来看,但如果你愿意,你还是可以将砖块和水泥看做是对象如果它是你关注的目标。我们接着看第二种分类方法,如果你在搞装修,你需要列一个表,写上门1,门2,门3等等,再写上窗1,窗2,等等,你是在按照类别来划分的,不管将来每个门装修成什么样子,你都能认出它是门,并且知道它的用途。在你装修的时候,你关心的是一个个具体的目标,你完全可以把他们称之为对象。
一个对象通常会具有如下几项内容:属性、事件和方法。相对固定的可以用一个值来表示的内容就是属性,比如门的材料(木质、铁、塑料),这几项内容就是属性,如果你打算将木头设计为一个对象,完全可以,一个对象可以是另一个对象的一部分,或者说是一个属性。对象会发生那些事情或者说它有那些功能,这称为事件,门可以打开和关闭,这就是它的事件。方法是实现功能所需要的代码,实质上就是一些内部使用的或者提供给外部调用的函
数。对象的划分方法,是和我们日常的认知方式类似的,划分的优略关系到实现时的难易程度,暂时我们还不需要来讨论这个问题。
在程序设计中,将同时包了含数据和数据处理程序的相对独立的结构形态称之为对象。
2.什么是面向对象?
"面向对象"概念的诞生已经有些年头了,它是程序设计发展到一定阶段时的产物,在它出现以后,人们将过去的程序设计方式称之为"面向过程"。"面向过程"的程序设计是以程序的控制流程为设计重点的,其中用到很多的函数,所以有时候也称为函数化的编程方式。"面向对象"是按照人们认识事物的顺序,将被观察的目标按照类别逐层细化,通过程序来模拟目标物的行为,被观察的目标就称为一个对象。程序设计时,先分析大的系统中包含了那些小的对象,对象之间有什么样的关系,然后再进入对象的编写过程。这种以对象为设计单元或者说关注重点的设计方式就称为"面向对象"。 "面向对象"是在"面向过程"的基础上发展演变来的,因此,二者关系紧密,对于数据处理的核心程序通常是类似的,或者是相同的,但是数据与处理程序的组织方式上有很大的区别。举例来说:"面向对象"与"面向过程"就像是"航运"和"水运"的区别一样,各有优势。在实际的应用中,纯粹的"面向对象"或是"面向过程"都是很少见的。
3.什么是面向对象编程?
以"面向对象"思想为指导的编程方式称为"面向对象编程",Object Oriented Program 简称OOP编程。从思想到实践需要有很大的跨越,OOP编程也是一样,在不断的发展过程中,OOP形成了一套完整的概念体系,而Flash AS则是一个非常年轻的OOP编程体系,因此,Flash AS中经常会出现一些非常规的东西,比如ptototype,但是Flash AS同时也是发展很快的一门语言,06年3月1日AS3.0的标准已经推出,很多没来得及看的东西已经不需要再去看了,但认识一下旧的东西还是有助于我们更好的理解现在。
"完整"和"易用"是一个矛盾,AS的低版本强调了易用性,因此,对与OOP来说,它不够完整,最新的版本里开始向传统OOP靠拢,使的很多初学者感到茫然。其实,这和Flash发展策略有很大关系,之所以向传统OOP靠拢,就是为了吸引传统程序员来参与Flash的应用,Flash实际应用中的分工也因此划分为美工人员和技术人员。从低版本的Flash中学起的人,很难学到良好的编程习惯,因为Flash提供的是简化的和不符合常规做法的编程方式,同时它提供的是封装好的类,没有一定编程基础的人学起来一定困难不少。
回复Comments
作者:
{commentrecontent}