Java编程入门:前言

本文由 ImportNew - 唐尤华 翻译自 math.hws.edu。欢迎加入翻译小组。转载请见文末要求。

《Java编程入门》是一本使用Java作为入门语言的免费计算机编程课本。可以用作编程入门课程教材,也可以用来自学编程。阅读本书只需要对计算机和编程有一般性了解。本书中包含了一整年大学编程课程内容。第1章至第7章可以满足大学一学期课程或者高中一学年课程的教学,余下的章节可以作为第2门课程。

本书的第七版涵盖了“Java 7”的所有内容。Java最新版本是Java8。在这本书中只有一部分内容涉及Java 8的新特性。

(译注:本书时间写得早,所以当时Java最新版本是 Java 8。)

这本书的主页是 http://math.hws.edu/javanotes/,提供了下载整个网站和本书PDF版本的链接。下载的网站内容包含这本书中使用的示例源代码、每章课后测试的答案和结尾练习的解答。非常推荐读者下载这些示例代码,在阅读的同时读代码并且运行这些程序。要想从这本书中得到最大的收获,强烈推荐读完所有练习解答

在内容风格上,这本书更偏向于课本而不是教程。换句话说,它更专注于概念的解释,而不是指导一步步如何去做。我试图采用一种对话风格进行写作,更贴近课堂教学而不是像传统的课本那样。当然,它不是Java参考书,更不是对Java所有功能的总结。这本书不是为那些已经了解某种其它编程语言的人所编写的Java快速入门。相反,它针对的是那些第一次学习编程的人,更多的以Java为例讲授一般编程概念。我相信,这本《Java编程入门》完全可以匹敌市面上那些传统出版社发行、印刷的编程课本。(好吧,我承认在我看来这本书会更胜一筹。)

教授Java有很多方法。一种是从一开始就是用图形化编程界面。一些人认为,应该从开始就强调面向对象编程。这不是我的方式。我钟爱的方式是从更基本的编程模块开始构建,然后从基本模块继续学习。在介绍章节之后的第2、3和4章,我讨论了面向过程的程序设计。在第5章介绍了面向对象编程。第6章讨论了面向事件编程的相关话题以及图形用户界面。第3章提到的数组在第7章进行了完整介绍。第8章是一个很短的章节,标志了本书的一个转折点。从编程基础概念的介绍转向了更高级的话题。第8章涉及了如何编写健壮、正确和高效的程序。第9章和第10章讨论了递归和数据结构,包括Java集合框架。第11章是关于文件和网络。第12章讨论了线程和并发处理。最后,第13章回到了图形用户界面编程,介绍了Java更加高级的功能。

第7版《Java编程入门》没有对第6版进行大幅更新。实际上,编写新版的主要动机是从书中移除applet部分和相关讨论。Applet是运行在网页中的Java程序。Java刚诞生时,看起来applet似乎会成为创建Web动态内容的主流方式。直到第6版,本书的主页还包含了示例applet程序。然而,由于安全因素和其它技术的出现,applet不再广泛使用。加之最近发布的Java版本让applet使用更加困难,因此决定不在书中介绍applet。移除applet后,我把精力投在了让读者们可以更方便地下载和运行示例程序。

第7版的另一个显著改进是,在第3章加入了数组的简要介绍。在接下来的3个章节里会更详细地讨论数组。之前的版本中,数组在对象和GUI编程之后,到第7章才开始介绍。新版的第7章包含了数组高级用法的讨论。

除了上述变化,还有很多针对Java 7新功能的小改进。
《Java编程入门》的最新版可以在线获得 http://math.hws.edu/javanotes/。该书的第1版写于1996年,自那以后有了很多版本。各个不同的版本可以在下列网址看到:
•第1版:http://math.hws.edu/eck/cs124/javanotes1/ (Java 1.0)
•第2版: http://math.hws.edu/eck/cs124/javanotes2/ (Java 1.1)
•第3版:http://math.hws.edu/eck/cs124/javanotes3/ (Java 1.1)
•第4版: http://math.hws.edu/eck/cs124/javanotes4/ (Java 1.4)
•第5版: http://math.hws.edu/eck/cs124/javanotes5/(Java 5.0)
•第6版: http://math.hws.edu/eck/cs124/javanotes6/ (Java 5.0及更高版本)
•第7版:http://math.hws.edu/eck/cs124/javanotes7/ (Java 7)

《Java编程入门》是免费的,不受版权限制。第7版基于“署名-非商业性使用-相同方式共享3.0”授权发布。要查看协议的副本,可以访问 http://creativecommons.org/licenses/by-nc-sa/3.0/。你可以:
•在你自己的网站上发布未经修改的版本(包含作者署名和许可声明!)
•在遵守协议的前提下,你可以分发或出售未经修改的版本。
•对本书修改或部分修改可以在互联网上发布且用于非商业目的。要求版本归属作者、明确地标注修改内容并且修改版本遵循原协议发布,包括翻译成其它语言。

协议中未注明的使用情况,需要征得原作者许可。

虽然协议中没有明确对此进行要求,但我非常期待了解人们使用或传播我的工作。

关于本书的技术说明:本书的在线和PDF版本来自同一份原稿,主要由XML编写。为了输出PDF版本,该XML文件被处理为可以被TeX排版程序使用的格式。除了XML文件,原稿还包含了DTD、XSLT转换、Java源代码文件、图片、TeX宏文件和一些用来处理的脚本。这些脚本可以在Linux和Mac OS上运行。

本书的源文件可以从下面网址获得:

http://math.hws.edu/eck/cs124/downloads/javanotes7-full-source.zip

这些文件本意并不用来出版,因此没有非常仔细地编写,使用这些文件需要很多专业知识。然而,我收到了很多请求想要这些文件,因此就“原封不动”的提供出来。这些文件的详细信息及如何使用说明,请下载并参阅其中的README。

大卫·j·艾克(David J. Eck)教授
数学和计算机科学系
霍巴特威廉史密斯学院
美国纽约州日内瓦区普尔特尼街300号
邮件:eck@hws.edu
网站:http://math.hws.edu/eck/
原文链接: math.hws.edu 翻译: ImportNew.com - 唐尤华
译文链接: http://www.importnew.com/16560.html
[ 转载请保留原文出处、译者和译文链接。]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、课程设计目的:1. 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。2. 进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程Java数据库编程等。3. 通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。二、 课程设计总体要求:1. 问题的描述与程序将要实现的具体功能。2. 程序功能实现的具体设计思路或框架,并检查流程设计。3. 代码实现。4. 程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。5. 设计小结(包括)三、 课程设计题目:1. 选做部分1) 利用Socket编程制作一个简单的C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个 TextField用于显示传来的计算结果;Server端用于监听连接请求、计算发送过来的两数的和、送回数据结果。2) 编一个多线程Applet,实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度有HTML文件传入的参数控制(控制sleep时间)。3) 编写Applet,包含两个按钮,一个按钮用于放大Applet上的一串字符串,一个按钮用于缩小;连续点击可不断放大或缩小。4) 设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除混合运算。5) 编写生产者/消费者问题的应用程序。生产者以0~200ms的速度随机产生30个小写字母,消费者以0~2s的速度取出字母,并显示在屏幕上。2. 必做部分 根据自己的兴趣,结合实际情况,选取合适题目,利用所学JAVA知识开发一个小型的应用软件。要求:1) 阐述清楚应用程序实现的具体功能和设计思路。2) 所选课题难度不应太简单。3) 所有人的题目及设计不得类同。四、 课程设计报告内容:1) 目录2) 设计题目及具体要求 3) 总体设计思路(简要说明系统包含的java源程序及其功能,描述类之间的主要关系)4) 具体设计(以表格形式描述各个类含有的成员变量和方法,并对关键代码加以说明,显示程序运行界面)5) 总结(包括对本课程的建议)6) 参考资料。。。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值