读书笔记《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多形对象的互换使用

img

//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对象的创建和存在时间

对象需要的数据位于哪儿,如何控制对象的“存在时间”?

  • 将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域。
  • 在一个内存池中动态创建对象。
  • 将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域。
  • 在一个内存池中动态创建对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SherlockerSun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值