【天极网开发频道3月9日消息】今天开始,就要进入我们Java教程最重要的一个部分了。Java的类和对象。说到类和对象,就自然要提到面向过程。
传统的开发方法是面向过程的,面向过程是一种以事件为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想可以说面向过程是一种基础的方法,它考虑的是实际的实现。一般的面向过程是从上往下步步求精,当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程会很清楚。
比如拿学生早上做的事情来说说这种面向过程,粗略的可以将过程拟为:
(1)起床
(2)穿衣
(3)洗脸刷牙
(4)去学校
这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了。
面向过程开发具有如下缺点:
软件重用性差,重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。
软件可性差,软件工调软件的可性,强调文档资料的重要性,最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,时其费用和成本仍然很高,其原因是可修改性差,困难,导致可性差。
开发出的软件不能满足用户需要,用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。
面向对象(Object Oriented,简称OO)是一种以事物为中心的编程思想。
对象是真实世界中的事物在人脑中的映象。在实际生活中,我们每时每刻都与“对象”在打交道,我们用的钢笔,骑的自行车,乘坐的公共汽车等都是对象。这些对象是能看得见、摸得着,实际存在的东西,我们称之为实体对象;有的对象是针对非具体物体的,但是在逻辑关系上的反映,比如:钢笔与墨水的关系,人与自行车的关系,我们称之为逻辑对象。
如果是用面向对象的方法来模拟学生早上做的事情。可以抽象出一个学生的类,它包括四个方法,但是具体的顺序就不能体现出来。根据类创建一个对象,再调用对象的方法,在调用方法时体现出顺序。
张三起床
张三穿衣服
张三洗脸刷牙
张三去学校
基于对象的编程更符合人的思维模式,编写的程序更加健壮和强大,更重要的是,面向对象编程鼓励创造性的程序设计。为了便于初学者理解,这里先讨论实体对象。
对象的基本构成
现实中的人是一个实体对象,分析实体对象的构成,发现有这样一些共同点,这些实体对象都有自己的状态描述,比如:人有姓名、身高、体重、发型、着装等,有了这些描述,我们可以想象出一个人的样子。我们把这些描述称之为属性,属性是静态的,这些属性用来决定了对象的具体表现形式。
除了这些静态的,实体对象还有自己的动作,通过这些动作能够完成一定的功能,我们称之为方法,比如:人能写字,能刷牙,能跑步,打篮球,踢足球等。我们知道了对象的方法,也就知道了这个对象可以做什么,有什么用。
依照这个理论我们再分析一下汽车,首先想到的是静态的属性,有颜色、车牌号、标志、发动机的功率、乘载人数、自重、轮子数目等等。然后是动态的功能:加速、减速、刹车、转弯等等。
总之一句话,对象同时具备静态属性和动态的功能。
如何进行对象抽象
抽象是在思想上把各种对象或现象之间的共同的本质属性抽取出来而舍去个别的非本质的属性的思维方法。也就是说把一系列相同或类似的实体对象的特点抽取出来,采用一个统一的表达方式,这就是抽象。
比如:张三这个人身高 180cm,体重 75kg,会打篮球,会跑步李四这个人身高 170cm,体重 70kg,会踢足球现在想要采用一个统一的对象来描述张三和李四,那么我们就可以采用如下的表述方法来表述:
人{
静态属性:
姓名;
身高;
体重;
动态动作:
打篮球();
跑步();
踢足球();
}
“人”这个对象就是对张三和李四的抽象,那么如何表述张三、李四具体的个体呢:
人{
静态属性:
姓名 = 张三;
身高 = 180cm;
体重 = 75kg;
动态动作:
打篮球();//打篮球的功能实现
跑步(); //跑步的功能实现
}
人{
静态属性:
姓名 = 李四;
身高 = 170cm;
体重 = 70kg;
动态动作:
踢足球();//踢足球的功能实现
}
对实体对象的抽象一定要很好的,可以把你所看到的任何物体都拿来抽象,“一切都是对象”。要到,你看到的没有物体,全是对象。
抽象对象和实体对象的关系
仔细观察的抽象对象——“人”,和具体的实体对象:“张三”、“李四”。你会发现,抽象对象只有一个,实体对象却是无数个,通过对抽象对象设置不同的属性,赋予不同的功能,那么就能够表示不同的实体对象。
这样就大大简化了对象的描述工作,使用一个对象就可以统一地描述某一类实体了,在需要具体的实体的时候,分别设置不同的值就可以表示具体对象了。
Java中的类和对象
Java中的类
把抽象出来的对象使用Java表达出来,那就是类class。类是对具有相似性质的一类事物的抽象,类封装了一类对象的属性和方法。实例化一个类,可以获得属于该类的一个实例(即对象)。
类在Java编程语言中作为定义新类型的一种途径,类是组成Java程序的基本要素。类声明可定义新类型并描述这些类型是如何实现的。
比如前面讨论过的“人”、“汽车”使用Java表达出来就是一个类。
Java中的对象
对象是类的一个实例,类的具体化,也称实例对象。实例就是实际例子,就好像真实存在一样。
类可被认为是一个模板---你正在描述的一个对象模型。一个对象就是你每次使用的时候创建的一个类的实例的结果。
比如前面讨论的张三和李四,他们就是通过“人”这个类的创建出来的实例。
网友评论 ()条 查看