Day009 构造器详解
构造器(构造函数)
- 类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。(如果没有定义构造方法,在创建对象时会调用一个空的构造方法)并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
构造器的注意点
- 使用new关键字,本质是在调用构造器。
- 构造器一般用来初始化值。
- 一旦定义了有参构造,无参构造就必须显示定义。
- Alt+Insert键,选Constructor可以快速生成构造器。
public class Person{
String name;
}
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person();
System.out.println(person.name);//null
}
输出结果
null
通过Person.class反编译看到Person类结构如下
public class Person {
String name;
public Person() {
}
}
可以看到默认有一个无参构造器
接下来声明一个有参数的构造器
public class Person{
String name;
//有参构造器
public Person(String name){
this.name=name;
}
}
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person();//报错
System.out.println(person.name);//null
}
可以发现编译器报错,这是因为如果声明了有参数的构造器,无参构造器就必须显示定义。
正确的代码如下
public class Person {
//一个类即使什么都不写,它也存在一个方法
//显示的定义构造器
String name;
//无参构造器
public Person(){
}
//有参构造器
public Person(String name){
this.name=name;
}
}
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person();
System.out.println(person.name);//null
}
输出结果
null
总结
构造器
特点:
-
和类名相同
-
没有返回值
作用:
-
new本质在调用构造器
-
初始化对象的值
注意点:
-
定义了有参构造,如果想使用无参构造,必须显示定义一个无参参构造
-
Alt+Insert可以快速生成构造器

浙公网安备 33010602011771号