构造器/构造方法
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化(在创建对象时,系统会自动的调用该类的构造器完成对象的初始化)。
[修饰符] 方法名 (形参列表){
方法体;
}
//构造器的修饰符可以默认(啥也不写),也可以是 public protected private
//构造器没有返回值
//方法名 和类名字必须一样
//参数列表 和 成员方法一样的规则
//构造器的调用, 由系统完成
注意事项
- 一个类可以定义多个不同的构造器,即构造器重载
比如:我们可以再给Person类定义一个构造器, 用来创建对象的时候, 只指定人名,不需要指定年龄 - 构造器名和类名要相同
- 构造器没有返回值
- 构造器是完成对象的初始化,并不是创建对象
- 在创建对象时,系统自动的调用该类的构造方法
- 如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也
叫默认构造器) , 比如Dog(){} , 使用javap指令反编译看看 - 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器, 除非显式的定义一下, 即:Dog(){} 写**(这点很重要)**
流程分析(面试题)
class Person{ //类Person
int age = 90;
String name;
Person(String n,int a){ //构造器
name = n; //给属性赋值
age = a; //给属性赋值
}
}
Person p = newPerson("小倩",20);
//流程分析
1.方法区加载Person类信息(Person.class) , 只会加载一次
2.在堆中分配空间(地址)
3.完成对象初始化
[3.1默认初始化age=0 name=null
3.2显式初始化age=90, name=null,
3.3构造器的初始化age=20, name=小倩]
4.在对象在堆中的地址,返回给栈中的p(p是对象名,也可以理解成是对象的引用)