JAVA面向对象编程(31)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《JAVA面向对象编程(31)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 面向 对象 编程 31 课件
- 资源描述:
-
1、 第3章 面向对象编程3.1面向对象问题求解的提出3.2面向对象的分析与设计n面向对象的分析(OOA)n面向对象的设计(OOD)3.3面向对象程序设计方法的优点n可重用性n可扩展性n可管理性3.4Java中类的定义和使用n类声明n类体3.1面向对象问题求解的提出n程序设计语言的发展阶段:q第一代语言(1GL):二进制机器代码(0101001)q第二代语言(2GL):汇编语言(Low Level Language LLL)(mov,add)q第三代语言(3GL):高级语言(HLL)(以C语言为代表,过程式编程语言)q第四代语言(4GL):面向对象语言(OOP)非过程化/面向对象的编程语言qOOP
2、最大的优点是具备了隐藏库执行的某些方面的功能,另一个重要优点是过程与数据结构联合,这种数据属性与方法的结合称为类。n最早的面向对象的编程语言是1966年推出的Simlula,它首次提出模拟人类的思维方式,把数据和相关的操作集成在一起的思想。n20世纪80年代末期,以C+为代表的面向对象程序设计(OOP)才流行起来。其优点为隐藏库执行的某些方面的功能,另一个优点是过程与数据结构联合。nJava是20世纪90年代新出现的面向对象的编程语言,它去除C+中非面向对象的内容,并实现一次编写,多次使用的跨平台特点,是面向对象开发工具中极具潜力的成员之一。n3.2面向对象的分析与设计n软件工程的新途径 q面
3、向对象作为一种思想及编程语言,为软件开发的整个过程:从分析设计到实现,提供了一个完整解决方案。面向对象堪称是软件发展取得的里程碑式的伟大成就。q面向对象方法简介q从80年代后期开始,进行了面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)等新的系统开发方式模型的研究,在有些文献中统称为OO范型。图图1-1 面向对象软件开发过程(软件生命周期)面向对象软件开发过程(软件生命周期)3.3面向对象程序设计方法的优点n与传统的方法相比,面向对象的问题求解具有更好的可重用性,可扩展性和可管理性n3.3.1可重用性n可重用性是面向对象软件开发的一个核心思路,面向对象程序设计的抽象、
4、封装、继承、多态四大特点都围绕这个核心服务。n1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察
5、。n2.继承:为什么会有继承?建立一个类后,发现另一个新的类有相同的特性,两个选择:重新定义一个新的类;在已有类的基础上,修改(加加/减减)继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。继承性很好的解决了软件的可重用性问题。运输工具航空运输工具陆地运输工具水上运输工具人力驱动引擎驱动二轮四轮客运货运n3.封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描
6、绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。n4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性语言具有灵活、抽象、行为共享、代码共享
7、的优势,很好的解决了应用程序函数同名问题。q表现在继承中方法的重写n子类从父类继承(extends扩展)而来n多个子类同属一个父类,所有子类有相同的父类n继承父类的方法n在不同的子类中有不同的表现形式q表现在用一个类中方法的重载q多态性在继承中的表现3.3.2可扩展性3.3.3可管理性类的实现包括类的实现包括类声明类声明和和类体类体3.4.1 类声明类声明 class Mankind class 定义类的关键字定义类的关键字。(注意不要把class写成Class)。Mankind 类的名称,习惯上,类名的首字母大写,并且类的名称,习惯上,类名的首字母大写,并且命名的规则符合标识符的规则。命名的
8、规则符合标识符的规则。3.4 java中类的定义和使用中类的定义和使用3.4.2 类体类体 类体包含数据(变量)的定义和方法的定义。只可以类体包含数据(变量)的定义和方法的定义。只可以在类体中定义数据、初始化数据、定义方法的语句,而不在类体中定义数据、初始化数据、定义方法的语句,而不能有其他的语句,如控制语句、赋值语句等。能有其他的语句,如控制语句、赋值语句等。class n在定义类的成员变量时可以同时赋初值,但对于成员变量在定义类的成员变量时可以同时赋初值,但对于成员变量的操作只能放在方法中。例如:的操作只能放在方法中。例如:class Tom int x=98,y;y=87;/此语句对成员
9、变量此语句对成员变量y进行了赋值操作进行了赋值操作 n一个简单的类class Student String name,stuNumber;double score1,score2,score3;void set1(String s1,String s2)name=s1;stuNumber=s2;System.out.println(name+“+stuNumber);double setScore(double d1,double d2,double d3)double d;score1=d1;score2=d2;score3=d3;d=d1 d2+d3;return d;1、变量的定义、变量
10、的定义(1)成员变量)成员变量 在类体中定义的变量称为类的成员变量。其类型可以是在类体中定义的变量称为类的成员变量。其类型可以是java中的中的任一类型。成员变量在声明它的整个类中有效。任一类型。成员变量在声明它的整个类中有效。成员变量又可以分为:成员变量又可以分为:类成员变量(类变量)类成员变量(类变量):类变量前有:类变量前有static关键字修饰,所有的关键字修饰,所有的对象共享类变量。对象共享类变量。改变一个对象的类变量会影响到其他对象的这个改变一个对象的类变量会影响到其他对象的这个变量变量 实例成员变量(实例变量)实例成员变量(实例变量):实例变量前无:实例变量前无static修饰,
11、所有的修饰,所有的对象拥有各自不同的实例变量,存储空间也不同。对象拥有各自不同的实例变量,存储空间也不同。Java 实例class Mankind String name=“Tom”,sex=“man”;static float salary=3000.0f;void printInf(String n,String s,float m)int count=1;System.out.println(“person:”+n+”sex:”+s+”salary:”+m);System.out.println(“count=“+count);(2)局部变量)局部变量n在方法体中定义的变量和方法的参数称
展开阅读全文