构造函数

构造函数是以类命名而没有返回类型的特殊方法,用于构造对象。构造函数与方法一样,可以使用输入参数。构造函数用于初始化对象。抽象类也可以有构造函数。

public class Hello{
    // constructor
    public Hello(String wordToPrint){
        printHello(wordToPrint);
    }
    public void printHello(String word){
        System.out.println(word);
    }
}
// instantiates the object during creating and prints out the content
// of wordToPrint

重要的是要理解构造函数在几个方面与方法不同:

  1. 构造函数只能使用修饰符 publicprivateprotected,并且不能声明为 abstractfinalstaticsynchronized

  2. 构造函数没有返回类型。

  3. 构造函数必须与类名相同。在 Hello 示例中,Hello 对象的构造函数名称与类名称相同。

  4. this 关键字在构造函数中有一个额外的用法。this.method(...) 调用当前实例上的方法,而 this(...) 引用当前类中具有不同签名的另一个构造函数。

也可以使用关键字 super 通过继承调用构造函数。

public class SuperManClass{

    public SuperManClass(){
        // some implementation
    }
    
    // ... methods
}

public class BatmanClass extends SupermanClass{
    public BatmanClass(){
        super();
    }
    //... methods...
}

请参阅 Java 语言规范#8.8#15.9