绪论面向对象程序设计Java.ppt_第1页
绪论面向对象程序设计Java.ppt_第2页
绪论面向对象程序设计Java.ppt_第3页
绪论面向对象程序设计Java.ppt_第4页
绪论面向对象程序设计Java.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计,清华大学出版社 编著者 叶乃文 喻国宝,主讲老师:刘坤良,主要教材 1. 面向对象程序设计 叶乃文 喻国宝 清华大学出版社 2. Java语言导学 Mary Campione 著 冯朝晖 译 机械工业出版社 参考书 1. Java程序设计教程 Julia Case Bradl著 徐强 译 电子工业出版社 2. 面向对象的理论与C+实践 王燕 清华大学出版社,面向对象程序设计,我国软件业目前最缺JAVA人才 IDC的数据显示,目前我国对软件人才的需求已达20万,并且以每年20%左右的速度增长。在未来5年内,合格软件人才的需求将远大于供给。2005年,我国软件人才的缺口已达42.5万,其中尤以JAVA人才最为缺乏。 根据IDC的统计数字,在所有软件开发类人才的需求中,对JAVA工程师的需求达到全部需求量的60%70%。同时,JAVA工程师的薪水相对较高。通常来说,具有35年开发经验的工程师,拥有年薪10万元是很正常的一个薪酬水平。,JAVA开发人员招聘需求大,目前招聘市场中,一些软件开发和信息服务公司对JAVA人才需求很大。其中设置的岗位有测试工程师、JAVA开发工程师、高级程序员、系统架构工程师等。 银河人才网高级人力资源管理师文雅丽介绍说,对于初级JAVA开发人员则一般要求为,一年以上的相关项目经验,计算机相关专业,本科学历,掌握热门技术等。中级JAVA开发人员的要求则是更多体现在几年的工作实战之后,具有3年以上的大型项目开发经验。高级JAVA开发人员除了要求具有3到5年的项目研发经验外,还要具备团队管理经验,较高的综合素质及外语的听说能力。从薪酬情况来看,JAVA人才薪资从20008000元不等。而一些知名国际公司的薪资最高可达1.8万元左右。根据企业的不同规模及不同性质,支付能力差异明显,而JAVA人才前景一片看好。,程序设计方法的提出背景 回首计算机的发展历程,人们发现计算机软件的发展速度始终滞后于计算机硬件的发展,它已经成为制约计算机产业整体发展的瓶颈。究其原因可能有很多方面,但下面两点不容忽视。 软件产业的个体化 受限于程序设计语言,程序设计方法,两种发展最成熟、应用最广泛的程序设计方法: 结构化程序设计方法(从系统的功能入手 ,可重用性、稳定性不高) 面向对象程序设计方法(数据为中心而不是以服务(功能)为中心来描述系统 ,可重用性高,稳定性强),程序设计方法: 指导程序设计工作的思想方法,包括程序设计原理和所遵循的原则,帮助设计者从不同的角度描述问题域。,1.1.2 结构化程序设计方法,自顶向下、逐步求精的开发方法 模块化的组织方式 结构化的语句结构,自顶向下、逐步求精,将编写程序看成是一个逐步演化的过程。所谓自顶向下是指将分析问题的过程划分成若干个层次,每一个新的层次都是上一个层次的细化,即步步深入,逐层细分。,模块化,将整个系统分解成若干个模块,每个模块实现特定的功能,最终的系统将由这些模块组装而成。模块之间通过接口传递信息,力求模块具有良好的独立性。,语句结构化,顺序结构,分支结构,Y,N,A,T,Y,N,while 循环结构,do 循环结构,结构化程序设计的特点,程序设计数据结构算法 程序内容过程过程调用,其基本过程:分解和组装,1.2 面向对象程序设计方法,1.2.1 面向对象程序设计的产生背景:,面向对象程序设计方法,对象 (object)现实世界中的一个实体 我们可以把生活所在的真实世界(Real World)当作是由许多大小不同的对象所组成的。对象可以是有生命的个体,比如一个人或一只鸟。,面向对象程序设计方法,对象也可以是无生命的个体,比如一辆汽车或一台计算机。 对象也可以是一件抽象的事物,如天气或鼠标所产生的事件。,面向对象程序设计方法,对象的特征,对象有两个特征:属性和行为。 例如:一个人有他的身高或体重等属性,并有他的行为如唱歌、打球、骑摩托车、开汽车。一只狗有它的颜色作状态,也有它的行为,如吠叫或跳跃。 而在程序设计中,软件对象的概念由真实世界对象而来。软件对象将状态保存在变量(variables)或称数据字段(data field)里。而行为则借助方法(methods)为工具来实现 。,数据字段(状态),对象具有下面5个基本特性(16):,自治性,指对象具有一定的独立操作能力; 封闭性,指对象具有信息隐蔽的能力; 通信性,指对象具有与其他对象通信的能力; 被动性,指对象的状态转换需由外界刺激引发; 暂存性,指对象的动态创建与消亡。,面向对象程序设计方法,在真实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类为一个“类”。例如我们可将世界上所有的汽车归类为汽车类,所有的动物归为动物类。,类是一组具有相同属性特征的对象的抽象描述(抽象的概念)。,面向对象程序设计方法,类具有层次关系,类之间存在的三种关系:泛化、关联、聚合,面向对象程序设计方法,类与对象的关系 类是对象的抽象 对象是类的实例,面向对象程序设计方法,学生类: 类对象的属性: 学号 专业 性别 身高 体重 类对象的功能: 回答学号 回答专业 回答性别 回答身高 回答体重 体重变化 修理电器 开车,自身所承受的操作,施加于其他对象的操作,学生对象: 属性: 学号:0410430129 专业:电气 性别:男 身高:175cm 体重: 65kg 对象的功能: 回答学号 回答专业 回答性别 回答身高 回答体重 体重变化 修理电器 开车,赋具体值,对 象,类的实例,cl class Student int No; /学号 String name; /姓名 Date birth; /出生年月日 float score; /学习成绩 static float salary=80; /每月补贴 Student() Student(int No,String str,Date date,score) this.No=No; name=new String(str); birth=new Date(date); this.score=score; int getNo()return No; void setScore(float num)score=num; String getName() return name; static void addSalary() salary+=50; ,0310430240,张平,1985年8月8日,98,赋具体值,对 象,Date date=new Date(1985,8,8); Student stu=new Student(0310430240,“张平”,date,98);,类的实例,面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。,面向对象程序设计方法,面向对象程序设计具有的特征,所有待处理的内容都表示成对象; 对象间依靠相互发送消息或响应消息实现通信; 每个对象都有自己的惟一标识,以便区别属于同一个类的不同对象; 对象一定属于某个类,我们又将这个对象称为所属类的一个实例; 类是将具有共同属性的对象进行抽象的结果,它可以具有层次关系,即一个类既可以通过继承其他类而来,也可以被其他类继承。,为什么需要面向对象方法?,现实世界是由客体(客观存在的对象实体及主观抽象的概念)组成的。 面向对象程序设计方法追求软件系统对现实系统的直接模拟 ,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。,面向对象设计方法的四个核心概念,一、抽象 ,所谓抽象是指从许多事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性。 抽象包括过程抽象和数据抽象 所谓过程抽象是指功能抽象,即舍弃个别的功能,抽取共同拥有的功能,,数据抽象是一种更高级别的抽象方法,它将现实世界中存在的客体作为抽象单元,其抽象内容既包括客体的属性特征,也包括行为特征,它是面向对象程序设计所采用的核心方法。模块化和信息隐蔽是数据抽象过程的两个主要概念。,面向对象设计方法的四个核心概念,将对象的属性和行为分别用数据结构和方法描述,并将它们绑定在一起形成一个可供访问的基本逻辑单元。(通过访问属性限制对对象属性的操作),二、封装,面向对象设计方法的四个核心概念,指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用。,三、继承,面向对象设计方法的四个核心概念,四、多态性,不同的类对象收到同一个消息可以产生完全不同的响应效果,这种现象叫做多态。,多态性依托于继承性,消息,消息是一个对象要求另一个对象实施某项操作的请求。在一条消息中,需要包含消息的接收者和要求接收者执行哪项操作的请求,而并没有说明应该怎样做,具体的操作过程由接收者自行决定。,消息传递是对象之间相互联系的惟一途径。发送者发送消息,接收者通过调用相应的方法响应消息,这个过程被不断地重复,使得应用程序在人的有效控制下运转起来,最终得到相应的结果。可以说,消息是驱动面向对象程序运转的源泉。,面向对象的4个特性,抽象性 封装性 继承性 多态性,面向对象程序设计,面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。,面向对象程序设计的优点(12),1能够实现对现实世界客体的自然描述 2可控制程序的复杂性(属性和行为的绑定) 3可增强程序的模块性 4可提高程序的重用性 5可改善程序的可维护性 6可适应新型的硬件环境(对象消息机制与分布式、并行处理、多机系统、网络等硬件环境吻合),面向对象程序设计语言,所谓面向对象程序设计语言OOPL (Object-Oriented Programming Language)是指提供描述面向对象方法所涉及到的类、对象、继承和多态等基本概念的程序设计语言。,几种有代表性的OOPL,Simula67,支持单继承、一定含义上的多态和部分动态联编。 Smalltalk,支持单继承、多态和动态联编。 Eiffel,支持多继承、多态和动态联编。 C+,支持多继承、多态和部分动态联编。 Java,提供了类机制,以及有效的接口模型。支持单继承、多态和动态联编。,C+,十分流行的面向对象程序设计语言,是C语言的扩充,保持了C语言的紧凑、高效、易于移植的优点。 Java语言,是一个新一代的高级的(high-level)、通用目的(general-purpose)、面向对象(objec-oriented)的程序语言。具有较强的安全健壮性。为用户提供了一个良好的程序设计环境.,最有代表性的OOPL,其语法与C或C+类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论