构造器/构造方法
什么是构造方法?
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。
它的几个特点:
- 方法名和类名相同
- 没有返回值
- 在创建对象时,系统会自动的调用该类的构造器完成对对象的初始化。
基本语法
[修饰符] 方法名 (形参列表){
方法体;
}
注意点:
- 构造器的修饰符可以默认
- 构造器没有返回值
- 方法名和类名必须一样
- 参数列表和成员方法一样的规则
- 构造器的调用系统完成
看一个案例:
前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名赋值,如果现在要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?这时就可以使用构造器来实现。
class Person{
String name;
int age;
//创建的构造方法
public Person(String pName,int pAge){
name = pName; //初始化属性
age = pAge;
}
}
当我们new一个对象时,直接通过构造器指定名字和年龄
public class Constructor{
public static void main(String[] args){
Person p1 = new Person("jugg",30);
System.out.println("p1的信息如下:");
System.out.println("p1对象name=" + p1.name);
System.out.println("p1对象age=" + p1.age);
}
}
class Person{
String name;
int age;
public Person(String pName,int pAge){
System.out.println("构造器被调用,完成对象属性的初始化");
name = pName; //初始化属性
age = pAge;
}
}
Console:
构造器被调用,完成对象属性的初始化
p1的信息如下:
p1对象name=jugg
p1对象age=30
构造器的注意事项:
- 一个类可以定义多个不同的构造器,即构造器重载。
比如:我们可以再给Person类定义一个构造器,用来创建对象的时候,只指定人名,不需要指定年龄。 - 构造器名和类名要相同
- 构造器没有返回值
- 构造器是完成对象的初始化,并不是创建对象
- 在创建对象时,系统自动调用该类的构造方法。
- 如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(默认构造器)
- 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显示的定义。
注意点一:
public class Constructor{
public static void main(String[] args){
Person p1 = new Person("coco",30);//使用第一个构造器
Person p1 = new Person("coco");//使用第二个构造器
}
}
class Person{
String name;
int age;
//第一个构造器
public Person(String pName,int pAge){
name = pName;
age = pAge;
}
//第二个构造器
public Person(String pName){
name = pName;
}
}