第2章对象无处不在 .doc
文本预览下载声明
第2章 对象无处不在 36
2.1 讲解 36
2.1.1 什么是面向对象 36
2.1.2 面向对象的基本概念 37
4.1.3 Java对面向对象的支持 39
4.2 练习 40
4.2.1 JavaBeans技术开发可重用组件 40
练习100201“造个打招呼的词” 40
4.2.2 面向对象的基础实践 42
练习100202“流行音乐排行榜” 42
练习100203“流行音乐排行榜”的UML图 44
4.4 小结 51
第2章 对象无处不在
本章将学习面向对象的基本概念,了解如何应用Java进行面向对象的设计、分析和编程,并将介绍集中体现了Java面向对象特性的Java Bean技术,最后将为贯穿全书的综合实例“迷你运动会”的创建模型。
本章重点:
面向对象的特点
Java中面向对象的支持和应用
迷你运动会
2.1 讲解
2.1.1 什么是面向对象
对象就是我们日常生活中遇到的各类事物,“一切皆对象”。面向对象是一种编程思想,它的应用涉及软件开发的各个阶段。
更准确地了解面向对象的概念,需要对比早先面向过程的思想。面向过程强调从计算机的处理过程出发来设计和实现,面向对象强调从人类的思维模式出发来设计和实现。由于两者出发点不同,带来它们分析、设计和实现方法也是不同的。面向过程推演出的是结构化的开发方法,关注如何简化和分解系统的处理过程。面向对象对应的一套方法是面向对象分析(OOA,Object Oriented Analysis),面向对象设计(OOD,Object Oriented Design)、以及面向对象编程(OOP,Object Oriented Programming)。这套方法沿着人类的思路来描述事物和解决问题,从而开发人员也会觉得这套方法更加自然和容易理解。大量的软件工程实践也证明,基于面向对象的方式构建的系统具有更高的扩展性和灵活性,尤其在构建复杂的、大型、需求不断变化的系统时,这种优势更加明显。
计算机语言是在以计算机所认知的方式进行描述世间对象,描述它们的属性、方法、关联和交互方法,进而进行各类计算,而人类语言也在进行类似的描述,只不过它为人类所认知。人类语言融汇了人们在生活中摸索出的知识、思想和经验,当计算机语言对之加以借鉴时,借鉴的越多,借鉴的越自然,越好用,越强大。
2.1.2 面向对象的基本概念
面向对象就是要让计算机借鉴和贴近人类的思想,所以面向对象中的许多概念都可以从人类语言中对照的例子。
2.1.2.1 封装、类和对象
面向对象的世界里,凡事都是对象,对象具有状态和行为。将对象定义成“类”,将对象的状态抽象成类的属性,将对象的行为抽象成类的方法,从而通过类绑定对象的状态和行为,这个过程就被称为“封装”。
日常生活中有许多封装的例子。比如说起“篮球”, 人们会想到“篮球是圆的,篮球比足球大”等等,这些关于篮球形状和尺寸的认识就是它的状态。此外,人们还会想到“篮球可以被投篮,可以运球,可以在商店中买到”等等,“运”、“投”和“买”,这些词描述的是发生在“篮球”对象上的一些行为。之所以对篮球人们有这样的共识,是因为“篮球”这个词很好地“封装”了有关“篮球”的状态和行为。
以上概念可用Java语言描述如下:
Class BasketBall {
private string shape = “圆的”;
private int size = 30;
public void throw() {}
public void buy() {}
}
字典中有关于“篮球”的定义,这些定义相当于面向对象中“类”的概念。存在于字典中的词是最常用的词,相当于基本函数库中的类。此外,还可以自己来造词,相当于自己来定义可重用的类。日常说话经常要用字典里的词或自己造的新词来遣词造句,所造的一个个句子就是对象的实例。
以上概念可用Java语言描述如下:
//定义自己的新词
Class MyWord{
}
Class MySentence {
Public void create() {
//引用字典里的词
java.util.ArrayList list = new java.util.ArrayList();
//引用自己定义的新词
mydictionary.MyWord word = new mydictionary.MyWord();
}
}
封装里一个重要的思想就是要基于接口来编程,而不是基于类来编程。接口没有实现,不可实例化,基于接口来抽象更易扩展。
这点也可在日常用语中得到对照。比如说,“可爱”这个词,可以用来形容“可爱的宝宝”、“可爱的花”、“可爱的狗”等等。还有个词,叫“靓妹”,但我们却很难用这个词用形容“花”和“狗”。这里,“可爱”是个抽象出来的虚
显示全部