【JavaSE】Java基础语法(十):构造方法

简介: 在面向对象编程的思想中,构造方法(Constructor)是一个特殊的函数,用于创建和初始化类的对象。构造方法通常与类名同名,在对象创建时自动调用,用于为对象属性赋初值,并进行其他必要的操作。构造方法在不同编程语言中可能会有所不同,但常见的语言都支持构造方法的定义。

面向对象编程的思想中,构造方法(Constructor)是一个特殊的函数,用于创建和初始化类的对象。构造方法通常与类名同名,在对象创建时自动调用,用于为对象属性赋初值,并进行其他必要的操作。

构造方法在不同编程语言中可能会有所不同,但常见的语言都支持构造方法的定义。

0e8181d0a5054c44a0c285480e7f468c.jpg

⛄1. 构造方法的格式和执行时机

格式注意 :

  • 🍁方法名与类名相同,大小写也要一致
  • 🍁没有返回值类型,连void都没有
  • 🍁没有具体的返回值(不能由retrun带回结果数据)

执行时机

  • 🍁创建对象的时候调用,每创建一次对象,就会执行一次构造方法
  • 🍁不能手动调用构造方法\

⛄2. 构造方法的作用

用于给对象的数据(属性)进行初始化

public class Student {
  private String name;
  private int age;
  // 1. 如果一个类中没有编写任何构造方法, 系统将会提供一个默认的无参数构造方法
  public Student(){}
  // 2. 如果手动编写了构造方法, 系统就不会再提供默认的无参数构造方法了
  public Student(String name, int age){
    this.name = name;
    this.age = age;
    System.out.println("我是Student类的构造方法");
  }
  public void show(){
    System.out.println(name + "..." + age);
  }
}
public class TestStudent {
  public static void main(String[] args) {
    Student stu1 = new Student("张三", 23);
    stu1.show();
    Student stu2 = new Student();
  }
}

⛄3. 构造方法的特点

●🍁 名字与类名相同。

● 🍁没有返回值,但不能用 void 声明构造函数。

● 🍁生成类的对象时自动执行,无需调用。

构造方法不能被 override(重写),但是可以 overload(重载),所以你可以看到一个类中有多个构造函数的情况。

⛄4. 构造方法的注意事项

构造方法的创建 :

🍁如果没有定义构造方法,系统将给出一个默认的无参数构造方法

🍁如果定义了构造方法,系统将不再提供默认的构造方法

推荐的使用方式 :

🍁无论是否使用,都手动书写无参数构造方法,和带参数构造方法

⛄5. 构造方法为什么不能被重写

重写(Override)是父类与子类之间的多态性,实质是对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数则该方法被重写,不过子类函数的访问修饰权限不能小于父类的;若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法,如需父类中原有的方法则可使用 super 关键字。

重写是子类方法重写父类的方法,重写的方法名不变,而类的构造方法名必须与类名一致,假设父类的构造方法如果能够被子类重写则子类类名必须与父类类名一致才行,所以 Java 的构造方法是不能被重写的

相关文章
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
50 1
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
35 2
|
19天前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
34 3
|
1月前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
31 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
31 1
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
30 1
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
33 2
|
1月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
2月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
59 3
|
2月前
|
设计模式 Java 测试技术
Java零基础-构造方法详解
【10月更文挑战第5天】Java零基础教学篇,手把手实践教学!
32 1