1、首页
2、写在前面的话
a、程序设计与对复杂性的操控有很大的关系:对一个准备解决的问题,它的复杂程度取决用于解决它的机器的复杂程度。正是由于这一复杂性的存在,我们的程序设计项目屡屡失败。对于我以前接触过的所有编程语言,它们都没能跳过这一框框,由此决定了它们的主要
设计目标就是克服程序开发与维护中的复杂性。
b、在理解到Java最终的目标是减轻程序员的负担时,我才真正感受到了震憾,尽管它的潜台词好象是说:“除了缩短时间和减小产生健壮代码的难度以外,我们不关心其他任何事情。”
c、java的封装性:将一切复杂、可重用的程序、处理封装在一起。
d、java解决了真正有难度的复杂问题:跨平台程序、动态代码转换及安全保护等。
e、在各个方面:创建程序;按计划编制程序;构造用户界面,使程序能与用户沟通;在不同类型的机器上运行程序;以及方便地编写
程序,使其能通过因特网通信——
Java提高了人与人之间的“
通信带宽”。作者称:java可能和下一次的工业革命有关系。
3、引言
a、只有在考虑设计,而非简单的考虑编码时,才可能真正体会到java的强大。
b、对每一章的解释都建立在如何用语言解决一种特定类型的问题基础之上。
c、学习任何语言时,脑海里有一个现成的知识结构往往会起到事半功倍的效果。
d、讲述面向对象的概念,以及java的基本控制机制。
e、java语言是从C/C++衍生出来的。
f、反复的修改教学、学习材料,直到最后认为是完善的教学载体为止。
g、作者希望建立一套有序的机制;得到适合大小的教学模块,能在适当的时间内完成。
h、在这本书中,我想达到的目标总结如下:
(1) 每一次都将教学内容向前推进一小步,便于读者在继续后面的学习前消化前面的内容。
(2) 采用的示例尽可能简短。当然,这样做有时会妨碍我解决“现实世界”的问题。但我同时也发现对那些新手来说,如果他们能理解每一个细节,那么一般会产生更大的学习兴趣。而假如他们一开始就被要解决的
问题的深度和广度所震惊,那么一般都不会收到很好的
学习效果。另外在实际教学过程中,对能够摘录的代码数量是有严重限制的。另一方面,这样做无疑会有些人会批评我采用了“不真实的例子”,但只要能起到良好的效果,我宁愿接受这一指责。
(3) 要揭示的特性按照我精心挑选的顺序依次出场,而且尽可能符合读者的思想历程。当然,我不可能永远都做到这一点;在那些情况下,会给出一段简要的声明,指出这个问题。
(4) 只把我认为
有助于理解语言的东西介绍给读者,而不是把我知道的一切东西都抖出来,这并非藏私。我认为信息的重要程度是存在一个合理的层次的。有些情况是95%的程序员都永远不必了解的。如强行学习,只会干扰他们的正常思维,从而加深语言在他们面前表现出来的难度。以C语言为例,假如你能记住运算符优先次序表(我从来记不住),那么就可以写出更“聪明”的代码。但再深入想一层,那也会使代码的读者/维护者感到困扰。所以忘了那些次序吧,在拿不准的时候加上括号即可。
(5) 每一节都有明确的学习重点,所以教学时间(以及练习的间隔时间)非常短。这样做不仅能保持读者思想的活跃,也能使问题更容易理解,对自己的学习产生更大的信心。
(6) 提供一个坚实的基础,使读者能充分理解问题,以便更容易转向一些更加困难的
课程和书籍。
i、拥有java帮助
文档。
j、每一章都只讲述一个新特性,或者只讲述少数几个相互关联的特性。
k、各章节内容介绍。
o、java:将程序员从操作
系统繁琐的机制中解放出来,它使人们成为真正的“
软件艺术家”。
4、对象入门
(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自