面向对象的java语言课件-第一章节_第1页
面向对象的java语言课件-第一章节_第2页
面向对象的java语言课件-第一章节_第3页
面向对象的java语言课件-第一章节_第4页
面向对象的java语言课件-第一章节_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计讲课+实验48学时讲授16学时上机实验考核期末考试70%,实验+平时表现30%教材Java面向对象程序设计,张桂珠.北京邮电大学出版社参考书:ThinkinginJava东北林业大学信息学院402纪明宇

程序设计语言分类Machinelanguage----国内第一个汇编作品WPSC/C++,Pascal:编译型语言。以机器指令形式执行,与环境有关,可移植性不强。Basic,Perl:解释型语言,由解释器逐行解释执行源程序,进行执行。效率不高,但可以在不同平台上通过解释器解释执行。Java介于2、3之间第一章

面向对象程序设计教学目标比较面向对象与面向过程程序设计类与对象 封装与信息隐藏 继承 多态性 面向对象的建模和UML1.1面向对象与面向过程程序设计面向过程程序设计程序由多个模块构成程序组成单位:过程或函数问题的解决方法:自顶向下的功能分解法一个要解决的问题被分解成假设干个子问题,每个子问题又被划分成假设干个子子问题。这种自顶向下的功能分解一直持续下去,直到子问题足够简单,可以在相应的子过程中解决。存在问题:把数据和处理数据的过程别离。可复用性差、开发和维护都很困难。面向过程程序设计intmax(intnum1,intnum2){if(num1>num2)returnnum1;elsereturnnum2;{图1-1:自顶向下的功能分解与程序结构面向对象程序设计将数据及对数据的操作行为放在一起,作为一个相互依存、不可分割的整体——对象。程序由类组成:对相同类型的对象进行分类、抽象后,得出共同的特性而形成了类。面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象,都归结为某一类事物,都是某一类事件的实例。对象之间通过消息(方法)相互作用,完成系统功能。1.2类与对象面向对象的设计:将客观事物〔或实体〕看作具有属性和行为〔或称效劳〕的对象〔object〕,通过抽象找出同一类对象的共同属性〔静态特征〕和行为〔动态特征〕,而形成类(class)的概念。程序的执行,表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。类是相同对象的集合的描述。例如,类Human就是现实世界中人〔对象〕的集合,我、你、他都是Human的对象。分析类Human的所有对象——人,得到对象的共同的数据属性和行为,如下所示:数据属性:编号、姓名、年龄,…行为:吃饭、走路、跳舞,…1.2类与对象(续)定义Human类:classHuman{intno; 编号Stringname; 姓名intage; 年龄…voideat(){…}…}Human被称作类名。no,name,age被称作成员变量或域eat()被称作方法,成员变量和方法都是类的成员。1.2类与对象(续)在面向对象的编程语言中,类是一个数据类型对象是类的实例(instance)。对象引用变量:具有类类型的变量被称作对象引用〔objectreference〕。例如,Humanp1=newHuman(1,“张三〞,20,…);p1被称作对象引用变量,newHuman(1,〞张三“,20,…)被称作Human的对象。对象对象:是用来描述现实世界中实际存在的事物的实体,它是用来构成系统的一个单位。对象由一组属性和一组行为(操作或效劳)构成。对象具有固定的对外接口.一组属性和操作的集合.对象之间通过公共接口进行通信.对象的状态:对象的属性值表示了它所处于的状态;对象的操作是用来改变对象状态。1.3封装与信息隐藏封装〔Encapsulation〕是面向对象方法的重要原那么。就是把对象的属性和操作〔或效劳〕结合为一个独立的整体〔系统单位〕,并尽可能隐藏对象的内部实现细节。封装有两个含义:其一,把对象的全部属性和全部效劳结合在一起,形成一个不可分割的独立单位。其二,“信息隐蔽〞,尽可能隐蔽对象的内部细节,对外界形成一个边界,只保存有限的对外接口使之与外部发生联系。1.3封装与信息隐藏(续)数据封装的作用:(1)对象的数据封装特性彻底消除了传统结构方法中数据与操作别离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作相容的负担。〔2〕对象的数据封装特性还可以把对象的私有数据和公共数据别离开,保护了私有数据,减少了可能的模块间干扰,到达降低程序复杂性、提高可控性的目的。1.3封装与信息隐藏(续)Java语言中,定义类时通过大括号{}封装了类的成员:域(fields)和方法(methods),使用private和public等关键字来控制对类的成员的访问,其中private修饰的成员是隐藏的,而public修饰的成员那么定义了类对外的公共接口。类作为一个抽象的数据类型允许用户从底层实现细节中抽象出来,提供给用户的是在公共接口上的上层操作。这是抽象性的含义。1.4继承Inheritance继承:在已有类〔父类或超类〕的根底上派生出新的类〔子类〕,新的类能够吸收已有类的属性和行为,并扩展新的能力。继承机制中,往往从一组类中抽象出公共属性放在父类。继承支持着软件代码的复用,是提高软件开发效率的重要因素之一。

继承的例子例如,给定类Car、Motocycle和Truck,我们把它们的公共属性放在一个称为Vehicle的公共父类中。VehicalCarMotocycleTruck继承的例子苹果梨西瓜水果继承的例子CircleRectangleShape1.4继承(续)Java中的继承的一个例子:给定一个Window类,通过继承扩展它而得到一个子类MenuWin。classWin{…//Win的成员定义}classMenuWinextendsWin{

…//MenuWin新增加成员的定义}1.4继承(续)继承分为单继承和多继承。单继承是指一个子类最多只能有一个父类。多继承是一个子类可有二个以上的父类。由于多继承会带来二义性,在实际应用中应尽量使用单继承。Java语言中的类只支持单继承,而使用接口支持多继承。如何设计继承并完成继承层次是面向对象设计和编程的核心问题。继承是多态性的前提条件。objectWinDialogWin单继承,injavaClass1Class4Class2Class3多继承,inC++1.5多态性多态性〔Polymorphism〕:指在超类中定义的属性或行为,被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在超类及其各个子类中具有不同的语义。1.5多态性(续)例如:定义一个几何图形类Shape,它具有“画图〞行为,用draw()表示。但具体画什么图并不确定;定义Shape类的一些子类如Circle圆和Rectangle矩形。在子类中“画图〞的具体行为可重新定义为:圆类中draw()画圆,矩形类中draw()画矩形。定义Shapes;s作为引用变量可指向Circle圆类的对象,也可指向Rectangle矩形类的对象。通过执行下面的代码:s.draw();//s调用draw()方法,s指向对象不同会画出不同的图形〔圆或矩形〕1.6面向对象的建模和UML统一建模语言(UnifiedModelingLanguage,UML)是一种流行的建模语言。UML是一种图形化语言,允许系统构造人员(即软件设计师、系统工程师、程序员等)用一种通用表示法描述系统的需求以及面向对象的分析和设计结果。1.6面向对象的建模和UML(续)作为一个建模语言,UML由一个用于表达模型的词汇表和一个定义怎样组合词汇的语法规那么构成,即:UML=UML词汇表+UML建模的语法规那么UML词汇表=UML事物+关系+模型图。UML事物〔Thing〕:就是被模拟的实体或对象。事物可能是包、类、接口等等。事物之间的语义上的联系:用关系表示,UML中共有4种关系,它们是:依赖关系、关联关系、泛化关系和实现关系。从软件的体系结构出发,UML把软件模型分成了四个视图:用例视图、逻辑视图、实现视图和分布视图。在本书的有关章节中,案例分析和设计

温馨提示

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

评论

0/150

提交评论