构造器又叫做构造函数
构造函数一般分为无参构造函数与有参构造函数
假设我们创建一个pet类,这个类里面就会有一个看不见的自动生成的无参构造函数
?
如果pet类里没有这个隐形的无参构造,我们new一个对象时就会报错
另外,当我们创建了一个有参构造之后,这个隐形的无参构造就不灵了,我们需要手动写一个无参构造
?
区别有参构造与无参构造的方法就是看他们是否有参数
当我们对对象的属性进行赋值时,有参构造就能发挥它的作用了:
new Pet(“天玄地号”) --- 创建一个参数为天玄地号的对象
天玄地号的这个值就通过有参构造传入pet对象(与pet.name = “天玄地号”;作用相同)
这里我们提一下对象在内存中的样子:
当我们创建一个对象时,计算机先将pet引用变量放入栈中,然后再堆中开辟一个空间,在里面创建一个基于pet类的对象,再将pet引用变量指向这个空间。(与c语言的指针相似)