← 返回首页
JavaSE系列教程(十七)
发表时间:2019-12-20 13:27:47
讲解什么是构造方法以及构造方法的作用。

1.如何创建对象

在java最常见的创建对象的方式是使用new关键字,new表示要创建新对象。凡是对象都是在堆内存中开辟空间。

例如以下代码:

public class Human {
    String name;
    String gender;
    int age;

    public void eat(){
        System.out.println(this.name + "正在吃...");
    }

    public void think(){
        System.out.println(this.name + "正在思考人生中...");
    }

    public static void main(String[] args){
        Human h = new Human(); //使用new关键字创建对象,后面跟上构造方法Human();
        h.eat();
        h.think();
    }

}

运行结果:
null正在吃...
null正在思考人生中...

2.什么是构造方法

创建对象时,用来初始化对象属性的方法称为构造方法。构造方法通常跟在new关键字后面,表示要初始化对象的属性。

注意:一个类如果用户自己没有显式地定义构造方法,那么默认存在一个无参的方法体为空的构造方法,例如上例中的Human类,默认存在如下的构造方法:

//默认存在的构造方法
Human(){

}

但是用户一旦自己定义了构造方法,那么这个默认的构造方法就不存在了。

3.构造方法的特征

构造方法通常有以下特征:

1)构造方法的名字名字和类名完全一致。

2)构造方法没有返回值类型,即便是void也不行。

3)构造方法经常重载。

例如,我们可以重新设计Human类,使它拥有带参和不带参两个构造方法。

public class Human {
    String name;
    String gender;
    int age;

    Human(){
      System.out.println("一个人从世界上诞生了");
    }
    //这里出现了构造方法重载。
    Human(String name,String gender,int age){
        this(); //在构造方法中使用this关键字调用本类的其它构造方法。
        this.name = name;
        this.gender = gender;
        this.age = age;
    }
    public void eat(){
        System.out.println(this.name + "正在吃...");
    }

    public void think(){
        System.out.println(this.name + "正在思考人生中...");
    }

    public static void main(String[] args){
        Human h = new Human("张三","男",18); //使用new关键字创建对象,后面跟上构造方法Human(String,String,int);
        h.eat();
        h.think();
    }

}

运行结果:
一个人从世界上诞生了
张三正在吃...
张三正在思考人生中...

小结:

1)通常使用new关键字创建新对象,new后面跟上这个类的构造方法,表示给对象属性的属性赋初值。

2)构造方法的作用就是给对象的属性赋初值。构造方法的名字和类名完全一致且没有返回类型,构造方法经常重载表示给属性赋初值的多种方式。