构造方法
# 构造方法
参考:
https://www.yiibai.com/java/constructor.html
https://www.jianshu.com/p/c2300404c331
# 原理
如果说“new”一个对象就像用户注册新账户一样:
用户注册时,是不是直接就获取到了手机号或邮箱啊,那注册之后还需要用户再提供一次吗?
所以说,用户注册账户就是一种“定义+初始化”的形式。
以数组的初始化为例:
// 定义+初始化
int[] array_1 = {1,2,3,4};
// 只定义
int[] array_2 = new int[4];
1
2
3
4
5
2
3
4
5
# 构造方法
构造方法不需要写返回类型,方法名即为类名。
两种类型的构造方法:
- 无参构造方法(默认构造方法)
- 有参构造方法
在实例化一个类时,都会执行构造方法来初始化一个对象。如果没有写构造方法,Java 编译器就会自动生成一个无参构造方法,为对象初始化一个默认值(根据对象成员变量类型分配默认值,如:int 为0
、String 为null
)。
构造方法还有一个有逼格的名字————构造器。
# 无参构造器-Example
public Person() {
}
1
2
2
# 有参构造器-Example
public Person(String name, String age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
1
2
3
4
5
2
3
4
5
# 注意!
如果要写了一个有参构造器,一定要写 无参构造器 + 有参构造器
:
public Person() {
}
public Person(String name, String age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
如果不写无参构造器,编译器就会认为构造器必须要有参数。没有参数,就会报错。
# 重载构造方法
重载:函数名相同,参数个数不同。
其实有参构造器就是无参构造器的重载,此外,如果要控制传入参数的个数,可以再次重载构造方法。
还是已注册账户为例:
在注册时,用户可选择性地忽略一些不强制填写的内容。
public Person() {
}
public Person(String name, String age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public Person(String name) {
this.name = name;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# IDEA快捷方式
- 在类中,
Alt+Insert
- 选择 Constructor
- 完事儿
编辑 (opens new window)
上次更新: 2022/09/26, 16:55:15