《Java编程思想》读书笔记之一

来源:互联网 发布:linux tengine 安装 编辑:程序博客网 时间:2024/05/17 23:54

华章寄过来的《Java编程思想》在书柜里已经放了好长一段时间,在评估的忙乱中压根没时间碰,如今拿出来太阳下一晒,一时恍若隔世。

第三版比第二版加了不少内容,中文版一如既往地保持中等偏下的水准,网络上的野鸡版个人感觉不比它差,如果E文够强的话直接读E版收获会更大。对于初学者,中文版若跟E版配合起来读,效果也不错。

第一章 对象导论

主要章节内容:

1.抽象过程
2.对象的概念、隐藏、继承、多态
3.并发性与持久性
4.Java为什么成功

一、整理:

抽象机制其实是语言本身应具备的东西,不论是编程语言或是人类自然语言,差别在是基于机器模型还是基于问题模型。面向对象基于问题建模(即对象)。
对象的描述:具备状态、行为和标识

对象的抽象就是类;开发人员的角色分类创建者和类消费者。类创建者构建类,向消费者开放该开放的内容,而隐藏其他部分,避免因为消费者失误造成的BUG或者破坏。

类可以组合(composition)或者动态组合(也叫聚合,aggregation),拥有关系(has-a)

继承是(is-a)或者(is-like-a)关系。子类继承父类除private修饰外的所有方法和属性,子类可以覆盖父类的方法或者添加新方法。
动态绑定问题(也有人翻译成后期绑定,可我还是喜欢用动态绑定,它更能形象地说明多态),通过动态绑定可以将对象泛化处理,即不用将它们作为特定类型来对待。在向对象发送消息时,被调用的代码直到运行时候才能确定。这就避免了使用诸如if...else的语句来判断要传递消息的对象,降低代码维护的成本

Java支持多线程实现并发处理,但资源必须保证在一个时刻只能一个线程使用,使用synchronized

Java支持轻量级持久性,对象可以存在磁盘上

Java之所以成功,是因为其在跨平台,大程序设计及类库的使用上面吸引我们

二、要点

upcasting与downcasting?

向上转型比较容易理解,比如下面的例子。
void checkDNA(Father f) {
......
}
那么这个方法可以这样调用:
checkDNA(son);
checkDNA(daugther);

向下转型比较危险,虽然Java支持单继承,但泛化处理如果不具备类型保护就非常容易丢失原对象的特征,期待Java的后续版本能解决好这个问题


原创粉丝点击