读书笔记《think in Java》①

知识养成了思想,思想同时又在融化知识。这篇文章主要讲述读书笔记《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);

【读书笔记《think in Java》①】动态绑定
通过创建一个抽象方法,可以将一个方法置入接口中,不必再为那个方法提供可能毫无意义的主体代码。
1.7对象的创建和存在时间
对象需要的数据位于哪儿,如何控制对象的“存在时间”?
  • 将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域。
  • 在一个内存池中动态创建对象。


    推荐阅读