:::info

一、构造方法的引入

:::

  1. 当一个对象被创建的时候,构造方法用来初始化该对象。构造方法和它所在的类的名字相同,但构造方法**没有返回值**
  2. 我们在使用new关键字创建对象时,往往看见后面跟着一个无参方法,这个方法就是无参的构造方法。我们在使用Scanner类时创建的input对象,使用了有参的构造方法。

    1. Student stu = new Student();
    2. Scanner input = new Scanner(System.in);

    :::info

    二、构造方法语法

    :::

  3. 构造方法的语法:

    1. [修饰符] 类名(形参列表) {
    2. // 方法体
    3. }

    注意**: **

  4. 构造方法没有返回值,因此在构造方法中不允许返回任何数据

  5. 构造方法名必须是“类名”,构造方法使用“大驼峰”命名规则(和类名一模一样)
  6. 构造方法就是一个特殊的方法,我们应该通过new关键字来调用构造方法 :::info

    三、创建对象的步骤

    :::

  7. 分析:”new Object01( );”底层的实现过程

  8. 1 创建对象,并为成员变量开辟内存空间
  9. 2 给成员变量做“默认初始化”
  10. 3 给成员变量做“显示初始化”
  11. 4 调用构造方法,给成员变量做“指定初始化”

** 成员变量**—->默认初始化—->显示初始化—->指定初始化

  1. 创建对象是谁完成的呢?
  • new关键字负责创建对象,构造方法完成对成员变量的指定初始化操作,创建对象的时候new关键字和构造方法缺一不可!
  1. 构造方法的作用是什么?
  • 创建对象时,new关键字和构造方法缺一不可
  • 通过构造方法,我们完成对成员变量的指定初始化操作**【核心】** :::info

    四、无参构造方法

    ::: 作用:给成员变量做初始化操作,例如:给数组类型的成员变量开辟内存空间并数组元素赋值
  1. 如果某个类中没有显示地提供构造方法,那么程序编译时会默认给这个类提供一个无参构造 :::info

    五、有参构造方法

    ::: 作用:给成员变量做指定初始化操作,例如:调用有参构造方法时,我们把形参的值赋值给成员变量来保存

  2. 建议有参构造方法的“形参名”和“成员变量名”保持一致,这样能提高代码的可读性

  3. 如果某个类中显示提供了构造方法,那么程序在编译时就不再默认提供无参构造方法,**建议为每个类都提供一个无参构造方法,避免在继承体系下子类找不到父类的无参构造方法** :::info

    六、构造方法和成员方法的区别

    :::

  4. 定义语法的区别:

  • 构造方法

    1. [修饰符] 类名(形参列表) {
    2. // 方法体
    3. }
  • 成员方法

    1. [修饰符] 返回值类型 方法名(形参列表) {
    2. // 方法体
    3. return [返回值];
    4. }
  1. 调用语法区别:
  • 构造方法:通过new关键字调用
  • 成员方法:**必须通过“对象”调用**
  1. 调用时机区别:
  • 构造方法:创建对象的时候调用
  • 成员方法:对象创建完毕后调用
  1. 调用次数的区别:
  • 构造方法:**只能调用一次**,每次调用都会创建新的对象
  • 成员方法:可以调用任意次数,对此通过对象调用即可
  1. 构造方法和成员方法的特点???
  • 在构造方法和成员方法中都存在this关键字,因此都能操作当前类的成员变量和成员方法