一本不错的书
- ben0133 财富等级:
|
|
很不错的书,作者由浅入深讲解的非常详细,无论你是初学者还是有多年经验的开发者,都会从中受益的。
|
|
此评论对你有用
没用
|
| |
|
|
|
|
|
评
- lonecrystal 财富等级:
|
|
目前只看了前几章,对JAVA只是稍微了解,不过还是可以发现,这本书对JAVA的了解非常透彻,比如说到参数传递方式那章,指明了JAVA只传引用。还明确区分了隐藏和覆盖的概念。
|
|
此评论对你有用
没用
|
| |
|
值得参考的读书笔记(之三)
- 125.33.60.*
|
http://blog.csdn.net/web_spider/archive/2007/01/09/1478037.aspx
只要稍微有点OO常识的人,都知道类的扩展,尽管类的扩展是如此基础,然而能够知道什么时候去用,怎么用的人并不多。 下面是书中所探讨的一些原则和例子: 1.如果要创建的类和源类存在'IsA'的关系,那么就适合扩展。 2.尽量用组合(HasA)而非扩展(IsA)。
设想一个Point类,它用(x,y)来表示二维空间中的一个点,如果我们要创建一个表示屏幕上的彩色象素点的Pixel类,我们是否可以让Pixel扩展Point呢? 首先Pixel IsA Point,这意味着所有适合Point的应用,都可以用Pixel来代替。 而对于一个圆(Circle)来说,它是否同样适合扩展Point呢?一个圆并不是一个点,尽管一个圆可以用一个点和一个半径来描述,但是点却具有一些任何 圆都不具有的用处。比如可以将矩形的中心放在某个定点上,而圆则不妥。圆和点的关系是HasA而不是IsA的关系。
正确的选择IsA或是HasA是一件微妙而重要的事情,比如我们可以将员工抽象为Employee类,而将经理Manager扩展Employee,毕竟经理也是员工。 但,更多的情况却是一个人可能有多重身份,比如他是一个项目的经理,却是另一个项目的员工?此时,如果能够引入一个角色类Role,采用Employee HasA Role, 或者更多的Role,如此设计更具有灵活性。
关于如何设计一个可扩展的类,下面摘录一句话: 非final的类又两类接口,其中public类接口是为使用该类的程序员提供的,而protected接口则是为扩展该类的程序员提供的。 这两类接口都是真正的契约,应当精心设计。
|
|
此评论对你有用
没用
|
| |
|
值得参考的读书笔记(之一)
- 125.33.60.*
|
http://blog.csdn.net/web_spider/archive/2006/12/20/1450261.aspx
用Java有四年之久,在同事之间,大家也都以为是Java牛人,然而自己知道对Java还不是那么通透, 我想从Java的设计者James Gosling所写的书The Java Programming Language中文版入手,然后再着手读 Java specification和JVM。
今天读了第一章,总体感受是比较朴实,有点反璞归真的味道。
就象一老者打拳,表明上看来平静朴实,实则蕴藏着几十年的功力。
比如第2页,关于函数签名(signature),函数头(head)以及函数体(body)的论述非常清楚简洁,摘录如下:
“方法的名字和它的参数列表一起组成了方法的签名(signature),而签名又和所有的修饰符(如public、static)、返回类型以及可抛出异常列表(本章稍后介绍)一起组成了方法头(header)。方法声明(declaration)由方法头和方法体(body)组成,方法体就是出现在花括号之间的语句块(statement block)。”
又如第18页关于interface是contract的理解可谓精辟。interface在java中大行其道,跟这些人对于interface概念深刻理解关系密切。
读完第一章,就一点不太满意就是第9页出现了个“引元”的概念,我是第一次听说这个概念,后来才搞明白原来是参数(parameter)。可能是译者新发明的词汇也有可能是我孤陋寡闻。不过总体来说,翻译的还是比较流畅的。
更多的内容还没有读,鉴于作者的名气,先评个四星。
|
|
此评论对你有用
没用
|
| |
|
|
值得参考的读书笔记
- 125.33.60.*
|
http://blog.csdn.net/web_spider/archive/2006/12/26/1462718.aspx
第二章 类和对象
当读到第二章的时候,我禁不住赞一个!总体感觉这本书不如Core Java结构性强,却比Core Java更贴近实战, 比Thinking in Java更正宗。
下面总结两个Java中非常常用的关键字final和this:
final:书中第30页如此描述“final字段用来定义类或者对象的持久属性,这些属性将不随类或者对象的生命周期而变
化。”,毫不夸张的说,这是我看过的对final字段的最好描述。
final字段的初始化要求,“一旦类被初始化(对于static的final字段)或者类的对象被完全构造出来(对非static的
final字段),这些空白final字段就必须被初始化。”
字段是否为final由该类被设计用来实现的应用所具有的语义决定,可以从如下三个方面去考虑: 1.该字段表示的是否是对象的不变属性? 2.该字段的值在对象创建时是否总是可知的? 3.当对象被创建时,设置该字段的值是否实际并不可行?
关于实际设计示例请参考书中的例子。
一般final可用来修饰class,method,field,parameter,varable,
final修饰class,表示该类不允许集成,比如 public final class ForbidInherit{} 如果我们尝试着去继承ForbidInherit,就会产生编译时错误。 final和abstract不能同时修饰一个class.
final 修饰method,表示该方法拒绝继承。
final修饰的field,表示该field只能被赋值一次,可能是class或object级别的。 与static一起来修饰,则表示class级别的,否则为object级别的。
final修饰parameter的时候,属于声明该参数的方法的实现细节,它只会对该方法中的代码产生影响, 而不会影响调用该方法的代码。(见43页) 当方法中的匿名类要访问方法中的parameter或者varable,则被访问的parameter或varable必须声明为final. (多线程的同步问题)
另外,final还涉及到并发性,对象序列化,以及克隆对象等相关内容。等读到相关部分,再补上相关的内容。
this用于下面三种情况 1.显式调用构造函数。 2.将当前对象的引用作为参数传递给其它方法。 3.将this放在本类的任何访问字段或方法的语句前面。特别是当举办变量或者参数隐藏了类的字段时, 要访问类的字段,则必须用this来修饰。
喜欢本章结尾时爱因斯坦的一句话“我们面临的重大问题无法再提出这些问题的思想层面来解决。”
|
|
此评论对你有用
没用
|
| |
|
|
|
|
|
|
评价
- 218.9.220.*
|
|
看过第三版的挺基础的!
|
|
此评论对你有用
没用
|
| |
|
|
|