第5章 初始化与清理 76

5.1 用构造器确保初始化 76

构造方法

  • 作用概述
    • 给对象的数据进行初始化
  • 构造方法格式
    • 方法名与类名相同
    • 没有返回值类型,连void都没有
    • 没有具体的返回值
  • 构造方法注意事项
    • 如果你不提供构造方法,系统会给出默认构造方法
    • 如果你提供了构造方法,系统将不再提供
    • 构造方法也是可以重载的
  • 思考题:构造方法中可不可以有return语句呢?
    • 可以。而是我们写成这个样子就OK了:return;
    • 其实,在任何的void类型的方法的最后你都可以写上:return;

5.2 方法重载 77

方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值无关。(同类同名不同参)
参数列表不同:
参数的个数不同。
参数的对应的数据类型不同。
方法重载案例
不同的类型的多个同名方法的比较。

5.2.1 区分重载方法 79
5.2.2 涉及基本类型的重载 79

5.2.3 以返回值区分重载方法 82

这是行不通的

5.3 默认构造器 83

5.4 this关键字 84

this : 是当前类的对象引用。简单的记,它就代表当前类的一个对象。

  • 注意:谁调用这个方法,在该方法内部的this就代表谁。
  • this:哪个对象调用那个方法,this就代表那个对象
  • this的场景:
    解决局部变量隐藏成员变量
5.4.1 在构造器中调用构造器 85
5.4.2 static的含义 86

5.5 清理:终结处理和垃圾回收 87

5.5.1 finalize()的用途何在 87
5.5.2 你必须实施清理 88
5.5.3 终结条件 88
5.5.4 垃圾回收器如何工作 89

5.6 成员初始化 91

5.6.1 指定初始化 93

5.7 构造器初始化 94

5.7.1 初始化顺序 94
5.7.2 静态数据的初始化 95
5.7.3 显式的静态初始化 96
5.7.4 非静态实例初始化 97

5.8 数组初始化 98

5.8.1 可变参数列表 102
1
2
3
void function(Object... args){
//args说明可变参数,0至多个
}

5.9 枚举类型 105

5.10 总结 107


书籍相关资源:

pdf文档链接:https://pan.baidu.com/s/1yuWb_kI0sB3yHLBndPcyEg 提取码:scvw
书中demo: https://github.com/BruceEckel/TIJ4-code
Thinking in Java 4th英文版的课后习题答案: http://greggordon.org/java/tij4/solutions.htm