参考价值:已完结、可以参考、等待重置

什么是构造器?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Person{
//属性:
String name;
int age;
boolean isMale;
//构造器:
Person(){

}
//方法:
void Print(){
System.out.println(name);
}
}

其中Person(){}就是一个构造器(空构造器)。

构造器有什么用?

两个作用,创建对象对象属性的初始化赋值

  1. 创建对象:

    1
    2
    3
    public static void main(String[] args){
    Person p1 = new Person();
    }

    这个功能其实我们一直在用,new Person()就是调用了构造器,不过调用的是默认的空构造器。

  2. 对象属性的初始化赋值:

    默认的空构造器是不具备这个功能的,但是我们可以写一个可以赋值的构造器。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public static void main(String[] args){
    Person p1 = new Person("老王");
    }
    class Person{
    //属性:
    String name;
    int age;
    boolean isMale;
    //构造器:
    Person(String e){
    name = e;
    }
    //方法:
    void Print(){
    System.out.println(name);
    }
    }

    如此我们就可以在创建对象的同时对对象的属性进行初始化赋值操作。

用不用写构造器,怎么写构造器?

这个问题要看我们用不用对对象的属性进行初始化赋值。

  1. 不写构造器:

    当我们不需要对类的对象的属性进行赋值时,我们就没必要写构造器,默认的构造器就够用。

  2. 写一个构造器:

    如果我们有明确的属性初始化赋值需求那么我们就需要写一个构造器。

  3. 重载多个构造器:

    可能一些大型的程序要创建多个对象,有的需要初始化赋值一个属性,有的需要初始化赋值两个,有的需要初始化赋值多个。这个时候我们就需要重载多个构造器,以应对不同对象的需求。

    友情提示:当我们写一个构造器时,默认构造器就不会被提供。

  4. 特殊情况:

    某些特殊情况下,我们也需要自己写一个构造器,就是一些要求在创建对象的同时输出一些语句或者堆属性进行处理之类的。

构造器是不是特殊的方法?

好多人都认为构造器是一种特殊的方法,主要原因就是因为它们长得比较像。

我认为他们没有关系:

  • 从功能上讲:

    构造器的创建对象功能是方法不能办到的(可能能办到,只是我不知道)。

  • 从使用上来讲:

    方法不能用new调用,构造器也不能用 对象.构造器的方式调用。

因此,两者并没有谁包含于谁的关系,各有各的作用,只不过在某些方面有一点点的交叉而已,并不能说构造器是一种特殊的方法。

构造器就是构造器,和方法一样是类的一个成员,并不属于类其他的某个成员。