(1) 新建一个名为Gerbil的类,在构建器中初始化一个int gerbilNumber(类似本章的Mouse例子)。为其写一个名为hop()的方法,用它打印出符合hop()条件的Gerbil的编号。建一个Vector,并为Vector添加一系列Gerbil对象。现在,用elementAt()方法在Vector中遍历,并为每个Gerbil都调用hop()。
(2) 修改练习1,用Enumeration在调用hop()的同时遍历Vector。
(3) 在AssocArray.java中,修改这个例子,令其使用一个Hashtable,而不是AssocArray。
(4) 获取练习1用到的Gerbil类,改为把它置入一个Hashtable,然后将Gerbil的名称作为一个String(键)与置入表格的每个Gerbil(值)都关联起来。获得用于keys()的一个Enumeration,并用它在Hashtable里遍历,查找每个键的Gerbil,打印出键,然后将gerbil告诉给hop()。
(5) 修改第7章的练习1,用一个Vector容纳Rodent(啮齿动物),并用Enumeration在Rodent序列中遍历。记住Vector只能容纳对象,所以在访问单独的Rodent时必须采用一个造型(如RTTI)。
(6) 转到第7章的中间位置,找到那个GreenhouseControls.java(温室控制)例子,该例应该由三个文件构成。在Controller.java中,类EventSet仅是一个集合。修改它的代码,用一个Stack代替EventSet。当然,这时可能并不仅仅用Stack取代EventSet这样简单;也需要用一个Enumeration遍历事件集。可考虑在某些时候将集合当作Stack对待,另一些时候则当作Vector对待——这样或许能使事情变得更加简单。
(7) (有一定挑战性)在与所有Java发行包配套提供的Java源码库中找出用于Vector的源码。复制这些代码,制作名为intVector的一个特殊版本,只在其中包含int数据。思考是否能为所有基本数据类型都制作Vector的一个特殊版本。接下来,考虑假如制作一个链接列表类,令其能随同所有基本数据类型使用,那么会发生什么情况。若在Java中提供了参数化类型,利用它们便可自动完成这一工作(还有其他许多好处)。
练习
时间: 2024-10-27 12:48:48
练习的相关文章
《从问题到程序:用Python学编程和计算》——第1章 程序设计和Python 1.1 计算机和程序
第1章 程序设计和Python 我们已经生活在信息时代,环顾四周,信息技术的影响无处不在.由于信息科学技术的发展和应用,我们的世界的方方面面都与20年前大不相同了,例如: 个人生活:看看人们在每天生活中做的各种事情,有多少是在与屏幕键盘(可能是触摸屏)交互,这些都是20年前没有的事情. 人际交流:20年前的人际交流方式很简单.除面对面交流外,只能通过纸笔写信或长途电话(要找专门的电话或者到电话局).今天人手一部手机,可以通过电话.短信.各种网络即时消息相互交流.电子邮件也是私人之间的交流媒介,而
《从问题到程序:用Python学编程和计算》——导读
前 言 计算机诞生至今不过六七十年,但它已经改变了世界,改变了每个人的生活.人们每天都在与计算机交流(如智能手机),各领域专业人员的大量日常工作都需要使用计算机,从事与计算机相关工作的人们已经发展为社会上最大的专业技术社团.计算机的研究和应用.互联网和其他相关领域,还在不断呼唤大量熟悉计算机的专业开发人才.计算机科学技术的开发和应用能力已被广泛认为是国家竞争力的重要组成部分.因此,学习计算机科学技术知识,不仅是社会发展的需要,而且已成为个人的重要职业竞争力.然而,要深入理解计算和计算机,使其成为
《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
1.2 Python语言简介 本节将首先简单介绍Python语言的一些基本情况,包括其发展和使用的情况.而后介绍Python语言系统的安装和使用方面的基本常识.1.2.1 Python语言的发展和应用 Python语言是CWI(荷兰国家数学和计算机研究中心)的程序员Guido van Rossum在1989年开始开发的一种高级编程语言,当时的主要设计目标是希望能用于方便地管理CWI的Amoeba操作系统.后来,由于其各方面的优点而逐渐流行起来. Python语言现在由Python软件基金会(Py
《从问题到程序:用Python学编程和计算》——2.8 重复计算和循环
2.8 重复计算和循环 在前面几节,我们首先看到如何通过语句的顺序组合构造最简单的程序,这种程序是直线型程序,就是简单的一系列语句.这样的程序中只有一条执行路径(一种可能执行方式):Python解释器顺序执行程序里的语句,每个语句执行一次,当语句序列中最后一条语句的执行结束时,整个程序的执行就结束了. 增加了if复合语句,能写出的程序更多,程序的形式也更丰富,其中出现了选择和分支.这样得到的程序可称为分支程序.在分支程序里,每条基本语句最多执行一次,如果实际条件导致的执行没进入某个分支,该分支里
《从问题到程序:用Python学编程和计算》——3.4 定义函数
3.4 定义函数 在最简单的程序中,可能只用到表达式.语句和几种控制结构.但是,仅限于这些基本机制,很难写出很长的解决复杂问题的程序.随着遇到的问题更复杂,我们必须组织好程序的结构,在语句层面之上的基本结构就是函数.一个函数包装起一段代码并给予命名,引进参数将其通用化.定义好的函数可以通过调用表达式使用,非常方便.学习编程的重要一步就是学习定义函数:理解为什么需要定义函数,学会识别编程中定义函数的需求,掌握正确定义函数的技术.本小节和下一章将集中讨论这个问题.3.4.1 为什么定义函数 实际中需
《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计
第3章 基本编程技术 第2章讨论了简单的计算和编程,展示了一些实例.通过对有关内容的学习,读者应该已经做了一些简单程序,对写程序和做计算有了些实际体会.虽然编程中细节较多,但也是很有趣的工作.为了完成一个程序,首先要分析问题.寻找解决方案,这些需要发挥人的聪明才智和想象力,也可能涉及一些相关领域的知识.要把设计变成可以运行的程序,既需要智力,也需要有条理的工作,一个小错误就可能使程序不能正确执行.当然,高度精确性也是现代社会对人的基本要求,写程序的过程能给我们许多有益的经验. 学习编程要经历一个
《从问题到程序:用Python学编程和计算》——1.3 程序开发
1.3 程序开发 在用Python学习编程时,自然需要了解Python语言,但更重要的是学习.理解和运用人们长期程序设计工作总结出的经验,包括正确的思考问题方法.正确的程序开发方法以及一些有益的常规做法,还要养成良好的编程习惯.随着学习的深入,需要解决的问题也会变得越来越复杂(当然,实际中的问题和解决它们的程序更复杂得多).比较复杂的东西不是随随便便就能做好的,需要认真工作,也需要正确的工作方法.本书中许多地方提出了这些方面的建议,希望引起读者的重视. 本节简单讨论程序的开发过程,包括程序的设计
《从问题到程序:用Python学编程和计算》——2.11 补充材料
2.11 补充材料 本书各章的主要内容将围绕着怎样通过编程解决计算问题展开,正文中对Python语言的机制只做必要的说明,有些细节情况没有涉及.另外,用Python编程也有许多有趣而且有用的技术.如果在各章的主要部分详细罗列,也可能冲淡讨论的主线.但是上述两方面的一些情况也值得介绍.本书采用的方法是在一些章的最后增加称为"补充材料"一节,补充一些细节,供读者参考,也供用本书教授课程的教师选用. 除了讨论语言细节和编程技术的两个小节外,有时还总结了一些常用的编程模式.练习中的第1题总是对
《从问题到程序:用Python学编程和计算》——2.5 标识符、变量和赋值
2.5 标识符.变量和赋值 前面用表达式做的计算都是各自独立的,实际上是把Python用作一个简单计算器.在提示符下输入一个合法的表达式,解释器处理该表达式,得到一个结果.不同表达式的计算相互无关.显然,这种方式很有局限性,只能完成最简单的计算工作.复杂的计算可能需要经过许多步骤,每步做一点计算工作并记录得到的结果,再基于已得到的结果一步步继续工作下去.要实现这种计算方式,就要有记录计算结果的方法. 2.5.1 变量.名字和值 Python中记录计算结果的机制称为变量.一个变量有一个名字,在程序
《从问题到程序:用Python学编程和计算》——2.6 简单脚本程序
2.6 简单脚本程序 一个Python程序(脚本)是一个独立的文件,文件的扩展名用py,文件的内容应该是一些Python命令(语句).把这种脚本送给Python解释器,令其执行,就能看到执行的效果.本节介绍脚本的建立和执行,以及程序在运行中与人交换信息的问题.[ 实际上,完全可以用任何文本编辑器,所有功能强大的Python程序开发环境也都提供了编辑Python程序的功能.可以根据自己的需要和考虑自行选择.但下面只考虑用IDLE编辑的问题.] 2.6.1 脚本的编辑和执行 一个Python脚本的内