Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Thingking in Java--读书摘要--Chapter 6: Reusing classes

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

1. Two methods of reusing classes

1.1 Composition
1.2 Inheritance

2. Initializing the base class

In the constructor, call "super(agument list)" first, or the compiler will call default constructor of the base class.

3. Cleanup

3.1 Commonly, there is no need to do this.
3.2 If you really want to do something cleanup, use "try { } finally { }".
3.3 First, "this.cleanup()", then "super.cleanup()".

4. Composition vs. Inheritance

Composition: has-a relation
Inheritance: is-a relation

5. Upcasting

If a function is definded as "func(ObjectA aaa)",you can use "func(bbb)" when "bbb" is ObjectB which extends ObjectA.
At this time, "bbb" is upcasted to a ObjectA.

6. "Final"

6.1 Final Data

6.1.1 It is a compile-time constant that won't ever change.
public static final int i = 10;
6.2.2 It is a value initialized at run time that you don’t want changed
public static final Radom rd = new Radom(20);  // rd is initialized when the class is loaded, and can't be changed any more.
public final int[] a = {1,2,3,4,5};            // a can't be changed, but a[i] can be changed.

6.3 Blank finals
Blank finals MUST be initialized in constructor.
Blank final field can be initialized by different values for two or more objects.

6.4 Final arguments
Inside the method, you can't change what the argument reference points to.

6.5 Final methods

6.5.1 It enables preventing any inheriting classes from changing its meaning.(Inheriting classes can't override this method.)
6.5.2 JVM will treat final methods as INLINE methods when it is not too long.
6.5.3 A PRIVATE method in a class is implicitly FINAL.

6.6 Final classes
These classes can't be inherited.
All methods and fields in these classes are implicitly FINAL.

7. Initialization and class loading
A class is loaded when the first time you use it.
When it has a base class, the base class is then loaded.
When loading a class, the static fields and methods are initialized in textual order.(Static fields and methods in base classes are initialized first);
When creating a object, all primitives in this object are set to their default values and all the object references are set to null. Then the constructor fo base classes will be called automatically, then the constructor of the current object.




相关文章

相关软件