java构造器详解
我们在使用new关键字实例化对象时,本质是在调用构造器。一个类即使什么都不写,它也会有一个方法。举例如下:
我们先定义一个类:
public class Person {}
然后再实例化如下:
public class application {
public static void main(String[] args) {
Person person=new Person();
}
}
我们发现,虽然Person类中什么都没写,但是依然能够实例化Person,说明Person类中存在一个默认的方法。
java文件在编译之后会自动生成一个class文件,在项目文件夹下的out文件夹内,打开名为Person的class文件,代码如下:
public class Person {
public Person() {
}
}
由此说明,一个类即使什么都不写,它也会存在一个构造方法。
类中的构造器也被称之为构造方法,是创建对象时必须要调用的。构造器具有以下两个特点:
- 必须和类的名字相同;
- 必须没有返回值类型,也不能写成void。
我们也可以在类中显式地定义构造方法,还是以Person类为例,构造器一个很重要的作用是实例化对象时赋予初始值,分为无参构造和有参构造:
- 无参构造:构造方法中不带参数
public class Person {
String name;
public Person(){
this.name="zxn";
}
}
- 有参构造:构造方法带参数
public class Person {
String name;
public Person(String name){
this.name=name;
}
}
其中this.name代表对象本身的name属性值。
对于有参构造,应该这样调用(实例化):
public class application {
public static void main(String[] args) {
Person person=new Person("zxn");
}
}
我们看到,对于有参构造,实例化对象时需要给对象传入初值。
构造器的两个主要作用:
- 使用new关键字,本质是在调用构造器;
- 用来初始化值。
IDEA中显式定义构造器快捷键:Alt+Insert,选Constructor,按住Ctrl可以选定多个想要初始化的参数。