读书笔记《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》①的主要内容,如果未能解决你的问题,请参考以下文章

Thinking in Java读书笔记2

Thinking In Java 读书笔记

Java泛型Generic - Thinking in Java读书笔记

Think in java读书笔记序列化

《Java编程思想》(Thinking in Java)读书笔记——01对象导论

Think in java读书笔记之:java匿名内部类的继承和覆盖