ps第2章对象无处不在-netbeanswiki

上传人:小** 文档编号:89348671 上传时间:2019-05-23 格式:DOC 页数:12 大小:281.50KB
返回 下载 相关 举报
ps第2章对象无处不在-netbeanswiki_第1页
第1页 / 共12页
ps第2章对象无处不在-netbeanswiki_第2页
第2页 / 共12页
ps第2章对象无处不在-netbeanswiki_第3页
第3页 / 共12页
ps第2章对象无处不在-netbeanswiki_第4页
第4页 / 共12页
ps第2章对象无处不在-netbeanswiki_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ps第2章对象无处不在-netbeanswiki》由会员分享,可在线阅读,更多相关《ps第2章对象无处不在-netbeanswiki(12页珍藏版)》请在金锄头文库上搜索。

1、第2章对象无处不在362.1 讲解362.1.1 什么是面向对象362.1.2 面向对象的基本概念374.1.3 Java对面向对象的支持394.2 练习404.2.1 JavaBeans技术开发可重用组件40练习“造个打招呼的词”404.2.2 面向对象的基础实践42练习“流行音乐排行榜”42练习“流行音乐排行榜”的UML图444.4 小结51第2章 对象无处不在本章将学习面向对象的基本概念,了解如何应用Java进行面向对象的设计、分析和编程,并将介绍集中体现了Java面向对象特性的Java Bean技术,最后将为贯穿全书的综合实例“迷你运动会”的创建模型。本章重点:l 面向对象的特点l J

2、ava中面向对象的支持和应用l 迷你运动会2.1讲解2.1.1 什么是面向对象对象就是我们日常生活中遇到的各类事物,“一切皆对象”。面向对象是一种编程思想,它的应用涉及软件开发的各个阶段。更准确地了解面向对象的概念,需要对比早先面向过程的思想。面向过程强调从计算机的处理过程出发来设计和实现,面向对象强调从人类的思维模式出发来设计和实现。由于两者出发点不同,带来它们分析、设计和实现方法也是不同的。面向过程推演出的是结构化的开发方法,关注如何简化和分解系统的处理过程。面向对象对应的一套方法是面向对象分析(OOA,Object Oriented Analysis),面向对象设计(OOD,Object

3、 Oriented Design)、以及面向对象编程(OOP,Object Oriented Programming)。这套方法沿着人类的思路来描述事物和解决问题,从而开发人员也会觉得这套方法更加自然和容易理解。大量的软件工程实践也证明,基于面向对象的方式构建的系统具有更高的扩展性和灵活性,尤其在构建复杂的、大型、需求不断变化的系统时,这种优势更加明显。计算机语言是在以计算机所认知的方式进行描述世间对象,描述它们的属性、方法、关联和交互方法,进而进行各类计算,而人类语言也在进行类似的描述,只不过它为人类所认知。人类语言融汇了人们在生活中摸索出的知识、思想和经验,当计算机语言对之加以借鉴时,借鉴

4、的越多,借鉴的越自然,越好用,越强大。2.1.2 面向对象的基本概念面向对象就是要让计算机借鉴和贴近人类的思想,所以面向对象中的许多概念都可以从人类语言中对照的例子。2.1.2.1 封装、类和对象面向对象的世界里,凡事都是对象,对象具有状态和行为。将对象定义成“类”,将对象的状态抽象成类的属性,将对象的行为抽象成类的方法,从而通过类绑定对象的状态和行为,这个过程就被称为“封装”。日常生活中有许多封装的例子。比如说起“篮球”, 人们会想到“篮球是圆的,篮球比足球大”等等,这些关于篮球形状和尺寸的认识就是它的状态。此外,人们还会想到“篮球可以被投篮,可以运球,可以在商店中买到”等等,“运”、“投”

5、和“买”,这些词描述的是发生在“篮球”对象上的一些行为。之所以对篮球人们有这样的共识,是因为“篮球”这个词很好地“封装”了有关“篮球”的状态和行为。以上概念可用Java语言描述如下:Class BasketBall private string shape = “圆的”; private int size = 30; public void throw() public void buy() 字典中有关于“篮球”的定义,这些定义相当于面向对象中“类”的概念。存在于字典中的词是最常用的词,相当于基本函数库中的类。此外,还可以自己来造词,相当于自己来定义可重用的类。日常说话经常要用字典里的词或自己

6、造的新词来遣词造句,所造的一个个句子就是对象的实例。以上概念可用Java语言描述如下:/定义自己的新词Class MyWordClass MySentence Public void create() /引用字典里的词java.util.ArrayList list = new java.util.ArrayList();/引用自己定义的新词 mydictionary.MyWord word = new mydictionary.MyWord();封装里一个重要的思想就是要基于接口来编程,而不是基于类来编程。接口没有实现,不可实例化,基于接口来抽象更易扩展。这点也可在日常用语中得到对照。比如说

7、,“可爱”这个词,可以用来形容“可爱的宝宝”、“可爱的花”、“可爱的狗”等等。还有个词,叫“靓妹”,但我们却很难用这个词用形容“花”和“狗”。这里,“可爱”是个抽象出来的虚词,单独拿出来不代表任何事物,也正因为这样,我们可以用它来修饰许许多多的事物。而“靓妹”是个实词,有着具体的含义,这限定它的重用的范围。在面向对象里,“可爱”是个接口,“靓妹”是个类。如果我们多考虑到用接口来抽象,那么写出的应用就更有弹性。以上概念可用Java语言描述如下:Interface Lovely Class Baby implements LovelyClass Flower implements Loverly2

8、.1.2.2 继承继承的功能是面向对象的独到之处。通过继承,子类自动共享父类数据结构和方法,从而实现代码重用和各类层次的数据共享。比如,球是圆的而且可以用来玩,所以篮球也是圆的而且可以用来玩。篮球的这些特性是从球那继承来的。这里“球”是“篮球”的父类,它们之间是一种继承关系,或被称作“Is-A”的关系,是一种一般和具体的关系。以上概念可用Java语言描述如下:Interface Ball private string shape = “圆的”; private string usage = “可玩的”;Class BasketBall extends Ball此外,“篮球”还和“大礼包”有着关

9、联,因为“幸运观众将会得到一个大礼包,包括某某签名的篮球”。这里的“篮球”是“大礼包”里中的一个礼品。“篮球”和“大礼包”之间的关联被称作“Has-A”,是种整体和部分关系。以上概念可用Java语言描述如下:Class GiftSuite private BasketBall ball;2.1.2.3多态多态性描述的是面向对象里同一方法名的多种实现。多态有两类情况:一类是方法的重写(Overriding),另一类是方法的重载(Overloading)。重写发生在父类与子类的方法之间,重载发生在同一个类的方法之间。重写指子类可以重写实现父类中有相同的名称和参数的方法,以屏蔽父类的调用。重载指一个

10、类中多个同名的方法,通过具有不同的参数个数或有不同的参数类型,来完成不同的实现,甚至返回不同的类型。生活中,重写和重载的现象也是随处可见。比如“玩”这个词,足球的玩法和篮球的玩法是不一样的。这就是足球和篮球对“玩”分别根据自己的规则进行了“重写”。以上概念可用Java语言描述如下:Class FootBall public void play /带着足球来到足球场init();Class BasketBall public void play /带着篮球来到篮球场init();而即使同样是“玩篮球”,也可以有不同的玩法,比如可以是打半场,还是打全场,半场也可以根据人数,分为4人一组,3人一组,

11、2人一组。这是因为可以对篮球的“玩”进行“重载”。以上概念可用Java语言描述如下:Class BasketBall public void play() /开始5人制的正式比赛 public void play(int playerNumber) /根据人数,开始非正式的半场比赛;多态性就是一词多义,在不同的上下文中,在和不同的词搭配时,同一个词可以完全不同的含义。4.1.3 Java对面向对象的支持封装、继承和多态是面向对象的三个基本特征,Java作为完全支持面向对象的语言,也具备了这些特征。Java Beans技术是一套关于可重用组件的约定,它集中体现Java对面向对象思想的实现和扩展。

12、面对现实中的问题,运用面向对象的思想,抽象出适合自己需要的类,这如同我们生活中的组词造句。有时我们希望自己所造的词,也能被他人所用,成为常用词汇,甚至作为成语放到字典中去,同样,当开发人员所写的类可以被重用,甚至被放到基本的组件库中去时,这样的类就叫做“Java Bean”。 Java Bean就是一些可以以标准方式重用的类。放在成语字典里的词需要遵循一些约定,同样,普通的类成为“JavaBean”也要遵循一些约定,在Java中这套约定就被叫做“Java Beans”规范。可重用是JavaBeans的主要设计目标,另一个重要的设计目标是可视化,即支持集成开发工具,比如NetBeans,以拖拽、

13、连线这些图形化的方式开发应用。为满足这两个设计目标,JavaBeans做了一系列的约定,主要涉及以下内容:如何自动获知类的相关信息,这就是JavaBeans的内省机制如何给读写类的属性,这就是JavaBeans里关于的方法命名机制如何在开发工具中编辑属性时指定编辑器,这就是JavaBeans的BeanInfo机制如何以标准的方式在类和类之间传递消息,这就是JavaBeans的事件机制。如何以标准的方式在保存类的数据,这就是JavaBeans的持久化机制。JavaBeans为java.beans为实现和支持这些约定,提供了支持。我们将在具体的练习中来讲解JavaBeans的约定。4.2 练习下面

14、将通过一些实例来进一步了解Java的面向对象特性。4.2.1 JavaBeans技术开发可重用组件类是Java语言用来封装对象的基本单位。当类的构建沿用了JavaBeans的各种约定时,它就被称作JavaBean,可以被加到组件库中以更好地重用。练习“造个打招呼的词”本练习将要开发一个简单的HelloBean,学习如何在NetBeans中完成JavaBean的开发。本练习操作步骤如下:1打开“文件”菜单 新建项目。弹出“新建项目”对话框,在项目栏中选择“Java类库”。点击“下一步”。在“名称和位置”栏中,输入项目名“100201_HelloBean”,点击“完成”。2选中项目“100201_

15、HelloBean”下的“SoucePackage”, 在右键菜单中选中“新建”- “Java类”。在“新建Java类”对话框中,输入类名“HelloBean”,包“course”。点击“完成”。3.在NetBeans IDE中,编辑文件HelloBean.java。其代码如下所示:package course;public class HelloBean String name; public String hello() return Hello! + name; 它包含一个属性(问候人的名称)和一个方法(生成问候的句子)。4重构上面的代码并不符合JavaBean的约定,还需要进一步的重构。在源代码编辑器中,弹右键,选择“重构” -“封装字段(T)”。“封装字段”的对话框中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号