第六章 复用类
1. 复用类的诀窍在于在不影响已有代码的基础上使用这些类。一种是组合(composition),另一种是继承(inheritance)。
2. toString()方法一般用于这种情况下:你想从一个对象得到它打印时的样子。在很多情况下,你需要重写这个函数。
3. 测试技巧:你可以为你的每一个类都创建一个main()方法。即使一个程序含有许多类,也只有命令行所调用的那个类的main()方法会被调用(只要这个main()是public,其所属的类是否为public则不用考虑)。这种在每个类中都设置一个main()方法的技术可使每个类的单元测试都变得简单易行。而且在你完成单元测试之后,也无需删除main(),你可以留待下次测试。
4. 在声明子类的过程中,我们知道一定会调用它的构造方法,在这个构造方法中一定会调用父类的构造方法,这是编译器强制规定,而且不可见。调用基类构造方法必须是你在子类构造方法中第一件要做的事情(假设咱们做错了,编译器会适时提醒)。
5. 如果你需要清除(dispose),最好是编写你自己的清除方法,但不要依赖finalize();请注意,在你的清除方法中,还必须注意对基类和成员对象的清除方法的调用顺序,以防止某个子对象依赖于另一个子对象的情形发生。形式最好和C++里的析构函数相同。
6. 在子类中仍然可重载父类的方法,注意这是重载,不是覆盖,因此并不会覆盖其在基类中的任何版本。
7. 组合和继承的区别?“is-a”是用继承关系来表达的,而“has-a”是用组合关系来表达的。
8. Protected:在实际项目项目中,你经常想要将某些事物尽可能的为这个世界隐藏起来,但仍然允许让子类的成员访问他们。就用户而言,它是private,但对于任何继承于此类的子类成员和同一包下的类来说,它却是可以访问的。
9. 我们要认识到程序开发是一种增量过程,犹如人的学习一样,这一点很重要。你可以尽其所能去分析,但当你开始执行一个项目时,你仍然无法知道所有的答案。如果你将项目看做是一种有机的进化的生命体去培养,而不是打算像盖摩天大楼一样快速见效,你就会获得更多的成功和更迅速的回馈。
10. 一定要慎用继承技术,在使用时一定要问一下自己:“我真的需要向上转型吗?”需要才必要,不需要就不要使用。
11. Final数据:对于基本类型,final使其数值保持不变;而对于对象引用,final使其引用保持不变,一旦引用被初始化指向一个对象,就无法改变它进行改变以指向另一个对象(然而,对象自身却是可以改变的)。
12. 空白final的使用,其实质是延后初始化,即使用前必须初始化;在类中时,它必须在构造方法中进行初始化,否则会造成编译错误。
13. Final在参数列表中使用:你可以读参数,但是无法修改参数。
14. 使用final方法的原因有两个:○1把方法锁定,以预防任何子类修改它的意义,这是出于设计的考虑:确保继承中方法行为保持不变,并且不会被重载;○2效率,如果将一个方法声明为final,就是同意编译器将针对该方法的所有调用都转为内嵌调用。
15. 将一个类声明为final的意思是说:该类永不需要任何改变,而且它不能够被子类继承。
分享到:
相关推荐
《Thinking in Java》是一本深度解析Java编程语言的经典著作,其深入浅出的讲解和丰富的实例使得读者能够全面理解Java的精髓。以下是对书中部分关键知识点的总结: 1. **Java 泛型**:泛型是Java SE 5.0引入的重要...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...
该标签表明本章节的主要内容是关于 Java 编程语言的学习笔记。 部分内容: 1.1 抽象过程 抽象是编程语言的基本机制,它允许开发者定义和使用抽象类型,隐藏实现细节,提高代码的可维护性和可重用性。 1.2 每个...
《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...
### Thinking In Java 学习笔记知识点总结 #### 面向对象编程(OOP)的重要性及其影响 面向对象编程(OOP)在软件开发领域产生了深远的影响。它不仅提高了开发效率和降低了维护成本,还简化了设计流程,使得编程任务...
《Thinking in Java》是Bruce ...以上只是《Thinking in Java》第五部分可能涵盖的部分内容,实际笔记可能还涉及其他高级主题,如反射、注解、并发编程等。通过深入学习这些知识,可以全面提升对Java的理解和应用能力。
通过以上概述,《Thinking In Java》第一章深入浅出地讲解了Java的基础概念,涵盖了面向对象编程的核心原则、数据的存储与管理、基本类型与包装类的使用,以及高精度数字的处理技巧,为初学者和进阶学习者提供了宝贵...
这些只是《Thinking in Java》中的一部分内容,全书还包括类、接口、多态性、异常处理、集合框架、并发编程等多个主题,是Java学习者的宝贵资源。理解和掌握这些基础知识是成为一名熟练Java程序员的关键步骤。
JAVA学习日记---Thinking in Java学习笔记 第5章总结 第五章 初始化与清理 5.1 用构造器确保初始化 1.构造器命名必须与类名相同 2.构造器也是方法,满足方法的各种特征,无参数的构造器称为默认构造器,默认构造...
我的学习笔记的书本课程来自于:《Thinking in Java》和《Head First Java》 视频课程主要来自于:廖雪峰老师《Java 基础课程》 如涉及版权侵犯请联系我更正。 初来乍到,文笔稚嫩,学识浅薄,请多指教。
在IT领域,特别是Java编程的学习过程中,"JAVA夜未眠,thinkingJAVA和学习笔记"这一主题涵盖了许多核心概念和实践技巧。以下是对这些资源的详细解释: 首先,"Java夜未眠"可能指的是一个深入探讨Java编程的书籍或...
《中文版Thinking in Java 4th编程思想》是学习Java编程的重要参考资料,它深入浅出地介绍了面向对象编程的核心概念。下面将详细解读其中的主要知识点。 1. **对象导论** - **万物皆对象**:Java编程的核心是对象...
总之,《Thinking in Java》的读书笔记结合了广泛的Java知识和实践应用,从基础知识到高级主题,从理论到实践,为学习和提升Java编程技能提供了全面的资源。无论是对初学者还是经验丰富的开发者,这都是一个宝贵的...
其次,"Thinking in Java"的资源可能包括了课后练习、习题解答、代码注释或者其他辅助学习材料。这些资源对于自学Java的人来说极其宝贵,它们可以帮助检验学习效果,解决遇到的问题,并提供额外的实践机会。通过完成...
**Java JDK 6.0 学习笔记** Java JDK(Java Development Kit)是Java编程语言的核心组件,包含Java运行环境、编译器、类库以及各种工具,是开发者进行Java程序开发的基础。Java JDK 6.0是Oracle公司发布的一个重要...
3. **《Thinking in Java》**:Bruce Eckel的这部巨著深入细致地介绍了Java语言,不仅涵盖基础,还涉及高级特性如多线程、网络编程、反射等。它的特点是理论与实践相结合,通过大量的实例来阐述概念,是提升Java技能...
Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...