读书笔记《think in Java》①
Posted SherlockerSun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读书笔记《think in Java》①相关的知识,希望对你有一定的参考价值。
think in Java
第一章
1.1抽象
- 所有东西都是对象。对象里面保存着数据,对象可以对自己进行操作。
- 程序包含许多对象。通过消息传递调用对象。
- 每个对象都有自己的存储空间,可以封装其他对象生成新对象。
- 每个对象都有一直类型,都是类的实例,能够接受不同类型的消息。
- 同类对象能接收相同的消息——对象的【可替代性】。
1.2对象的接口
“类型”决定了接口,而“类”是那个接口的一种特殊实现方式。
1.3实现方案的隐藏
- “public”(公共)意味着后续的定义任何人均可使用。
- “private”(私有)意味着除您自己、类型的创建者以及那个类型的内部函数成员,其他任何人都不能访问后续的定义信息。
- private在您与客户程序员之间竖起了一堵墙。若有人试图访问私有成员,就会得到一个编译期错误。
- “friendly”(友好的)涉及“包装”或“封装”(Package)的概念——即Java用来构建库的方法。若某样东西是“友好的”,意味着它只能在这个包装的范围内使用(所以这一访问级别有时也叫作“包装访问”)。
- “protected”(受保护的)与“private”相似,只是一个继承的类可访问受保护的成员,但不能访问私有成员。
1.4方案的重复使用
创建对象
1.5继承:重新使用接口
使用继承相当于创建了一个新类,衍生类具有与基础类相同的类型,拥有相同的接口
针对不同的场景使用不同的对象
1.6多形对象的互换使用
//Upcasting”(上溯造型):
//“cast”(造型)是指根据一个现成的模型创建。
//“Up”(向上)表明继承的方向是从“上面”来的——即基础类位于顶部,而衍生类在下方展开。
//所以,根据基础类进行造型就是一个从上面继承的过程,即“Upcasting”。
void doStuff(Shape s)
s.erase();
// ...
s.draw();
//========================
Circle c = new Circle();
Triangle t = new Triangle();
Line l = new Line();
doStuff(c);
doStuff(t);
doStuff(l);
动态绑定
通过创建一个抽象方法,可以将一个方法置入接口中,不必再为那个方法提供可能毫无意义的主体代码。
1.7对象的创建和存在时间
对象需要的数据位于哪儿,如何控制对象的“存在时间”?
- 将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域。
- 在一个内存池中动态创建对象。
以上是关于读书笔记《think in Java》①的主要内容,如果未能解决你的问题,请参考以下文章
Java泛型Generic - Thinking in Java读书笔记