- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[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程序主要就是设计和创建这些
您可能关注的文档
- [C语言讲义all.doc
- (投资管理制度.doc
- 《货币名词解释.doc
- [D-link路由器配置外网访问方法.doc
- (投资部岗位职责说明.doc
- [D17目标与绩效管理.doc
- (投资银行复习材料.doc
- 《货币政策对经济增长的贡献.docx
- (投资饭店筹营工作不容忽视.doc
- 《货币数量论产生和发展的脉络与理论意义.doc
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
文档评论(0)