『Thinking in Java 读书笔记』—— 1-对象导论

  |     |   本文总阅读量:

Thinking in java 读书笔记

前言

从本章开始,逐渐记录笔者在阅读「Thinking in Java」时,内容的积累、代码的实践和个人编程的心得,重要的是个人的成长。正式工作将近一年的我,有必要重新温故一下Java的核心基础,巩固自身的硬实力,从根本感受Java语言的魅力,而不是局限于敲代码,完成产品需求。更重要的是领悟每种语言的特色,融入其中,提升自己,感受学习带来的快乐!足以!

正文

1. Java 五个基本特性

  1. 万物皆为对象
  2. 程序是对象的集合,他们通过发送消息来告知彼此所要做的。
  3. 每个对象都有自己的由其他对象所构成的存储。
  4. 每个对象拥有其类型。
  5. 某一特定类型所有对象都已接收同样的消息。

2. 每个对象都有一个接口

3. 每个对象都提供服务

将对象看做是服务提供者有一个好处,它有助于提高对象的内聚性。这不仅在设计过程中非常有用,而且当其他人试图理解你的代码活重用某个对象时候, 如果他们看出对象多能提供的服务的价值,它会调整对象以适应其设计的过程变得简单很多。

4. 被隐藏的具体实现

类创建者的目标是构建类,这种类只向客户端程序员暴露必需的部分,而隐藏其他部分。这以为着类创建者可以任意修改被隐藏的部分,而不用担心对其他任何人造成影响,被隐藏的部分通常对象内部脆弱的部分,它们很容易被粗心或者不知内情的客户端程序员所毁坏,因此将实现隐藏起来可以减少程序的 bug。

5. Java 用三个关键字在类的内部设定边界

public private protected
任何人都可以用 除类型创建者和内部方法,任何人不能访问 仅继承的成员可以访问

6. 复用具体实现

代码复用是面向对象程序设计语言所提供的最了不起的优点之一。在建立新类时,应该优先考虑组合,因为它更加简单灵活,如果采用这种方式,设计会变得更加清晰,一旦有了一些经验之后,便能够看出必须使用继承的场合了。

7. 继承

继承

void doSomeThing(Shape shape) {
    shape.draw();
    // ....
    shape.setColor();
 }
Circle circle = new Circle();
doSomeThing(circle);

Circle被传入到预期接收的Shape,向上转型,这就是泛型的使用,当调用基类的方法时,会主动定位到指定的具体对象,调用该对象的具体实现方法。

8. 容器

需要对容器有所选择,主要有两个原因:1. 不同容器提供了不同类型的接口和外部行为。堆栈相比于队列就具备不同的接口和行为。2. 不同的容器对某些操作具有不同的效率,最好的例子便是 ArrayListLinkedList

9. 对象的创建和生命周期

在使用对象时,最关键的问题之一便是它们的生成和销毁方式,每个对象为了生存都需要资源,尤其是内存,当我们不再需要一个对象时候,它必须被清理掉,使其占有的资源可以被释放和重用。

10. 异常处理:处理错误

异常处理将错误处理直接置于编程语言中,有时候甚至置于操作系统中。异常处理不是面向对象的特征–尽管在面向对象语言中异常常被表示成一个对象,异常处理在面向对象语言出现之前就已经存在了。

11. 并发编程

频发的操作不可能允许我们等上一个操作结束才能进行下一个操作,这个时候就需要并发执行,很早计算机就已经有了这个概念,就是在同一个时刻处理多个任务的思想。

12. Java 与 Internet

总结

OOP 和 Java 也许并不适合所有人,重要的是正确评估自己的需求,并决定 Java 是否能够最好的满足这些需求,还是使用其他的编程系统才是更好的选择,如果知道自己的需求在可预见的未来会变得非常特殊,并且 Java 可能不满足你的具体限制,那么就应该考虑其他的选择了。

#rewardButton { background-color: #ea6f5a; } .btn-pay { margin-bottom: 20px; padding: 8px 25px; font-size: 16px; color: #fff; background-color: #ea6f5a; } .btn { display: inline-block; margin-bottom: 0; font-weight: 400; text-align: center; vertical-align: middle; touch-action: manipulation; cursor: pointer; background-image: none; border: 1px solid transparent; white-space: nowrap; padding: 6px 12px; font-size: 14px; line-height: 1.42857; border-radius: 4px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } #QR img{ height: 200px; height: 200px; margin: 20px; }
文章目录
  1. 1. 前言
  2. 2. 正文
    1. 2.1. 1. Java 五个基本特性
    2. 2.2. 2. 每个对象都有一个接口
    3. 2.3. 3. 每个对象都提供服务
    4. 2.4. 4. 被隐藏的具体实现
    5. 2.5. 5. Java 用三个关键字在类的内部设定边界
    6. 2.6. 6. 复用具体实现
    7. 2.7. 7. 继承
    8. 2.8. 8. 容器
    9. 2.9. 9. 对象的创建和生命周期
    10. 2.10. 10. 异常处理:处理错误
    11. 2.11. 11. 并发编程
    12. 2.12. 12. Java 与 Internet
  3. 3. 总结
您是第 位小伙伴 | 本站总访问量 | 已经写了 120.4k 字啦

载入天数...载入时分秒...