P246-P255
《Head First Java》20201008读书笔记
重载与默认的构造函数
- 如果你已经写了一个有参数的构造函数,并且你需要一个没有参数的构造函数,则你必须自己动手写。
- 如果类有一个以上的构造函数,则参数一定要不一样。
- 重载构造函数的意思代表你有一个以上的构造函数,且参数都不相同。
- 实例变量保存在所属的对象中,位于堆上。
- 如果实例变量是个对对象的引用,则引用与对象都是在堆上。
- 构造函数是个会在新建对象的时候执行程序代码。
- 构造函数必须与类同名且没有返回类型。
- 使用构造函数来初始被创建对象的状态。
- 如果你没有写构造函数,编译器会帮你安排一个。
- 默认的构造函数是没有参数的。
- 如果你写了构造函数,则编译器就不会调用。
- 最好能有无参数的构造函数让人可以选择使用默认值。
- 重载的构造函数意思是有超过一个以上的构造函数。
- 重载的构造函数必须有不同的参数。
- 两个构造函数的参数与必须不同。
- 实例变量有默认值,原始的默认值是0/0.0/false,引用的默认值是null。
构造函数
- 构造函数是在新建类时会执行的程序。
Duck d = new Duck();
- 构造函数必须与类的名字一样,且没有返回类型。
public Duck(int size){ }
- 如果你没有写构造函数,则编译器会帮你写一个没有参数的。
public Duck(){ }
- 一个类可以有很多个构造函数,但不能有相同的参数类型和顺序,这叫作重载过的构造函数。
public Duck(){ }
pblic Duck(int size){ }
public Duck(String name){ }
public Duck(String nname,int size){ }
父类的构造函数在对象的生命中所扮演的角色
在创建新对象时,所有继承下来的构造函数都会执行。
Hippo对象IS-A Animal同时也IS-A Object。
如果你要创建出Hippo,也得创建出Animal与Object的部分。
这样的过程被称为“构造函数链(Constructor Chaining)”。
创建Hippo也代表创建Animal与Object