构造器详解
构造器也叫构造方法,是创造对象时调用的方法
我们建立一个类时,即使我们什么都没开始写,我们可以看到其反编译文件中已经出现了一个方法,这个方法就是构造方法
浅谈一下对象创建的四步:
第一步:分配对象空间;并将对象成员变量初始化为0或为空
第二步:执行属性值的显示初始化
第三步:执行构造器里的方法
第四步:返回对象的地址给相应的变量
对象创建的格式:
类名 对象名=new 类名();
格式内容解释:
类名:要创建的对象所属的类型,例如Scanner、Person
对象名:代表我们所创建的对象
=:将对象的地址,赋值给对象名
new:在堆内存中开辟一个新的空间,用于储存该类型的数据
类名:要创建的对象所属的类型
():要调用的构造方法
构造器有什么作用呢?
将属性(成员变量/实例变量)初始化,通俗来讲就是赋值,如果没有给属性赋值,那么你调用对象的属性的时候输出的值会是默认值
我们在创建对象的时候,也就是在用new这个关键字的时候,这个对象的类必须要有构造器;而构造器分又为有参构造和无参构造,最开始的时候默认是有一个无参构造,我们创建对象的时候那个小括号里面就不需要输入参数;还有一种构造器是有参的构造器,也就是说有参数,要传参,我们用这个构造器创建对象的时候必须要在小括号里面输入构造器形参对应的实参,也就是说你这个有参构造器定义的时候规定括号里面是什么数据类型,那么你在用的时候就写什么类型进去。
注意点:
- 我们定义了有参构造,那么无参构造一定要显示出来,方法名都是一样的,此时为方法重载
- 我们创造对象时,程序会跟据我们的参数去调用最合适的方法
快捷键:
快速生成有参构造器:alt+insert;
总结:
- new的本质是在调用构造器
- 构造器名必须和类名相同
- 构造器没有返回值
- 构造器可以初始化对象的值
- 定义有参构造器时必须要将无参构造器显示出来
- 在构造器中,this指代正要初始化对象;普通方法中this代表调用该方法的对象