- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java面向对象程序计(第三版) 第一章
第1章
Java程序设计与开发
1.1 概 述
本章介绍Java程序设计与开发中需要用到的一些基本概念和技术。首先从确定设计面向对象程序的主要步骤开始。通过设计一个提问和回答的猜谜程序来阐述这些步骤。作为一个猜谜的例子,想一想什么是黑和白并且可以读的?的问题,答案当然是报纸。
在设计阶段之后,我们重点关注编写Java程序所需的步骤,这些步骤包括了编辑、编译和运行程序。由于有两种不同形式的Java程序——应用程序(application)与小应用程序(applet),所以我们将讲解编写这两类程序的不同之处。
接下来,我们通过研究PrintStream和System类来熟悉Java的扩展类库。使用这些类包含的对象和方法即可实现在程序中打印输出。在本章结束时,你将能设计并编写出一个能唱你最喜欢的歌的Java应用程序。
1.2 设计优秀的程序
编程并不仅仅只是简单地键入Java代码,而是需要进行大量精心规划和设计。设计糟糕的程序几乎不可能正确运行。对于新手程序员来说,马上开始编码是非常有诱惑力的,下面给出程序设计的首要规则之一。
换句话说,设计程序时投入的思考和注意力越多,就越有可能得到一个可以正确运行的程序。下面这些小节将对程序开发过程做一个简要的说明。
软件工程生命周期
软件工程是指设计和实现软件的过程。软件生命周期指的是在设计和开发一个计算机程序时所历的不同阶段。本书所举的例子将集中讨论整个生命周期的4个阶段。在分析阶段,我们提供了对某个问题的综述并详细说明了这个程序将要完成什么功能。在设计阶段,我们对程序中将要使用的各种各样的类、方法以及数据进行详细的说明。实现阶段指的是编写Java程序源代码的过程。在测试阶段,我们将测试程序的运行性能以确保它是正确的,如果有必要,将重新设计或编写这个程序。
图1.1对程序开发过程做了更详细的介绍,主要集中在软件生命周期的设计阶段。它设计一个面向对象的程序是对组成程序的各种类、数据和方法提出正确问题的过程。
总之,程序开发过程可以看作是一个反复应用分而治之原则的过程,因为大多数编程问题可以反复分解,直到成为许多相对容易解决的子问题,每一个子问题对应于一个对象。通过使用这种方法,一个程序可以分解成一组相互作用的对象,然后再为每一个对象设计一个类。在设计类的时候,每个对象进一步分解成只包含属于它自己的变量和方法。
图1.1 程序开发过程一览
什么时候停止进一步的分解呢?一个对象或者方法应该分配多少个任务?要回答类似的问题并不容易。好的答案来自于丰富经验所产生的良好判断力,而且好的解决方案经常不止一个。再次强调,随着我们学会更多关于面向对象设计的知识,我们也将学会如何更好地做出设计决策。
1.3 设计一个猜谜程序
程序开发过程中的第一步就是确保你知道需要解决些问题(图1.1)。因此,我们从制定详细的规则开始,这将解决以下3个基本问题:
到底要解决问题?
程序将如何使用?
程序将表现出行为?
在现实世界中,问题分析经常开发者与客户深入讨论之后。在程序设计入门课程中,这种分析通常由教师给出。
为了让这种思路更清晰,我们来为这个简单的问题设计一个面向对象的解决方案。
1.3.1 问题分解
大多数问题都由于太大、太复杂而不能一解决掉。因此,设计过程的下一步就是将问题分解成多个部分,这样可以更好地管理其解决方案。在面向对象的方法中,一个问题被分解成多个对象,每个对象只处理本程序整体任务中的一个特定方面。这样,每个对象就成程序的整体行为中某一方面的内行或专家。
注意,在对一个给定的程序进行分解时,到底要分解到哪一步并不明确。这种不确定性源于过程设计本身。在一个程序的所有部分变得简单到可以解决之前,我们要把它分解到什么程度?这取决于试图解决的问题和解决问题的人。
下面是一条有用的设计指导原则,可以用来决定在程序中需要哪些对象。
同样,这条指导性原则也存在不确定性。例如,前问题中的关键词是谜语,所以解决方案中包含一个作为谜语模型的对象。这个Java对象的主要任务是表示一个谜语。问题分析中的另两个名词是问题和答案。幸运是,Java的String对象来表示。我们可以用两个String对象来代表谜语的问题和答案。因此,对于这个简单问题,我们只需要设计一个新类型的对象谜语,其主要目的是表示谜语的问题和答案。
如果觉得设计决策在这个阶段显得很神秘,不用担心。只有具备丰富的设计经验之后,才能很好地理解面向对象设计,但这是一个好的起点。
1.3.2 对象设计
旦把一个问题分解成一组相互协作的对象,设计Java程序主要就是设计和创建这些对象本身。这意味着在这个实例中,我们必须设计谜语对象的特征。对于每个对象,必须回答下面这些基本设计问题:
对象在程序中扮演什么角色?
对象需要什么数据
您可能关注的文档
- EDA课程设计_简易字频率计设计.doc
- eda技术多功能数字系统的设计.doc
- EDA课程设计——交信号灯控制器设计 2.doc
- EDA课程设计 秒表时器 王斯.doc
- EDA课程设计出租车费器.doc
- EDA课程设计—出租计价器.doc
- EDA课程设计拔河游机.doc
- EDA课程设计报告_子密码锁.doc
- EE-孙作柏 201-9-5-修改.doc
- Effect of anthanum addition on microstructure and corrosion behavior of A1-Sn-Bi anodes.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)