Day009 构造器详解

构造器(构造函数)

  • 类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。(如果没有定义构造方法,在创建对象时会调用一个空的构造方法)并且构造器有以下两个特点:
    1. 必须和类的名字相同
    2. 必须没有返回类型,也不能写void

构造器的注意点

  1. 使用new关键字,本质是在调用构造器
  2. 构造器一般用来初始化值
  3. 一旦定义了有参构造,无参构造就必须显示定义
  4. Alt+Insert键,选Constructor可以快速生成构造器。
public class Person{
    String name;
}

 public static void main(String[] args) {
        //实例化了一个对象
        Person person = new Person();

        System.out.println(person.name);//null
    }

输出结果

null

通过Person.class反编译看到Person类结构如下

public class Person {
    String name;

    public Person() {
    }
}

可以看到默认有一个无参构造器

接下来声明一个有参数的构造器

 public class Person{
    String name;
    
    //有参构造器
    public Person(String name){
        this.name=name;
    }
}

  public static void main(String[] args) {
        //实例化了一个对象
        Person person = new Person();//报错

        System.out.println(person.name);//null
    }

可以发现编译器报错,这是因为如果声明了有参数的构造器,无参构造器就必须显示定义。

正确的代码如下

public class Person {
    //一个类即使什么都不写,它也存在一个方法
    //显示的定义构造器

    String name;

    //无参构造器
    public Person(){
    }

    //有参构造器
    public Person(String name){
        this.name=name;
    }
}

 public static void main(String[] args) {
        //实例化了一个对象
        Person person = new Person();

        System.out.println(person.name);//null
    }

输出结果

null

总结

构造器

特点:

  1. 和类名相同

  2. 没有返回值

作用:

  1. new本质在调用构造器

  2. 初始化对象的值

注意点:

  1. 定义了有参构造,如果想使用无参构造,必须显示定义一个无参参构造

  2. Alt+Insert可以快速生成构造器

狂神说java

posted @ 2021-05-09 18:17  南方风  阅读(46)  评论(0)    收藏  举报