Java简单总结——构造方法

1、什么是构造方法?

构造方法是 : 类的一个特殊成员,它会在实例化对象时被自动调用。

定义构造方法的三个基本要求:(同时满足!!)

  • 构造方法的名字必须与定义他的类名完全相同。
  • 方法名前面没有返回类型的声明。注意:该处指的没有返回类型不是void,因为Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
  • 方法中不能使用return语句返回一个值。

例如:

public class Person {
    //这是Person类的一个构造方法
    public Person() {
    }
}

2、构造方法分类

构造方法分为两种:无参构造 和 有参构造。

无参构造:一个类没写有参构造方法时,在该类被实例化时,会使用默认的无参构造方法。(注意:当你类中没有定义任何构造方法的时候,类中会有一个默认的无参数的构造方法!!!)

public class Person {

    //这是Person类的一个无参构造方法
    public Person() {
        System.out.println("进行无参构造方法");
    }

    public static void main(String[] args) {
        Person person = new Person();
    }

}

结果是: 进行无参构造方法

有参构造:一个类除了可以定义无参构造方法,还可以定义有参构造方法,通过有参构造方法可以实现对属性的赋值

public class Person {
    public String name;

    //这是Person类的一个无参构造方法
    public Person() {
        System.out.println("进行无参构造方法");
    }

    //这是Person类的一个有参构造方法
    public Person(String name){
        System.out.println("进行有参构造方法"+name);
    }

    public static void main(String[] args) {
      Person person1 = new Person();
      Person person2 = new Person("测试");
    }

}

结果是:

进行无参构造方法
进行有参构造方法测试

3、拓展

  1. 构造方法可以重载,但是不能重写,因为构造方法不能被继承。
  2. 如果在子类的构造方法中,没有显式的使用关键字super调用父类的某个构造方法,那么会默认隐式的使用super调用父类无参构造方法。
  3. 如果类里定义一个或多个构造方法,那么java不提供默认的构造方法(不带参数的构造方法)。因此,当在父类中定义多个构造方法时,应当补充一个不带参数的构造方法,以防子类省略super时出现错误。