一:基本语法

  1. // [修饰符] 方法名(形参列表){
  2. // 方法体;
  3. // }
  4. class person{
  5. public person(){
  6. //方法体
  7. }
  8. }

:::danger 说明:
1:构造器的修饰符可以默认, 也可以是 public protected private
2: 构造器没有返回值
3: 方法名 和类名字必须一样
4:参数列表 和 成员方法一样的规则
5:构造器的调用, 由系统完成 :::

二:基本介绍

构造方法又叫构造器,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化,有以下几个特点:

  • 方法名和类名相同
  • 没有返回值
  • 在创建对象时,系统会自动调用该类的构造器完成对象的初始化
    1. class person{
    2. String name;
    3. int age;
    4. public person(String name,int age){
    5. this.name = name;
    6. this.age = age;
    7. }
    8. }

    三:注意事项和细节

  • —个类可以定义多个不同的构造器,即构造器重载

    • 比如:我们可以再给Person类定义一个构造器,用来创建对象的时候,只指定人名,不需要指定年龄

      1. class person {
      2. //分别指定无参构造器和有参构造器
      3. public person (){
      4. }
      5. public person (String name ,int age){
      6. }
      7. }
  • 构造器名和类名要相同

  • 构造器没有返回值
  • 构造器是完成对象的初始化,并不是创建对象,且在创建对象时,系统自动的调用该类的构造方法 ```java public static void main (String[] args){

    //建对象时,系统自动的调用该类的构造方法 person p1 = new person(“sakura”,”20”);

} class person { public person (String name , int age){ this.name = name; this.age = age; } }

  1. - **_如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器)_**,可以使用javap指令反编译看看
  2. ```java
  3. class person {
  4. //若没有定义构造器,系统会自动生成一个无参的构造器
  5. }
  • 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显式的定义一下 ```java

class person { //当定义过有参的构造器之后,就没有无参的构造器了 //除非自己显式的定义以下 public person (String name , int age){

  1. }

} ```

四:对象的创建流程分析

  1. 加载Person类信息(Person.class),只会加载一次
  2. 在堆中分配空间(地址)
  3. 完成对象初始化
  4. 对象在堆中的地址,返回给p(p是对象名,也可以理解成是对象的引用

image.png