天天即时:Java培训:什么是Java中的构造函数?

在任何面向对象的语言中,程序员都可以定义类和创建对象。在这些场景中,类成员需要一种初始化方式。构造函数是一种与类有关的特殊方法,它可以使用你想要的值初始化类的成员。

虽然构造函数在创建对象时由运行库隐式调用,但它也可以显式调用。在本编程教程中,我们将研究构造函数,它们的优点,以及开发人员如何在Java中使用构造函数。


(资料图)

Java中的构造函数是什么?

构造函数是一个类的方法或成员函数,其名称与其所属的类的名称相同,唯一的目的是初始化类成员。因此,你可以利用构造函数为类的成员设置初始值。

当你实例化你的类时,一个Java构造函数被隐式调用。虽然一个类中可以有几个构造函数,但是可以有一个——而且只能有一个——析构函数。Java中的任何类都必须至少有一个构造函数。

需要注意的是,即使程序员没有在类中编写任何构造函数,类也隐式地提供了构造函数。默认情况下,运行时提供的这个构造函数称为默认构造函数。当使用不带任何参数的新运算符创建类时,将调用该类的默认构造函数。

Java中的构造函数重载是什么?

Java中的构造函数重载是一种为同一个类创建多个构造函数的方法,这允许开发人员在一个类中创建多个具有相同名称但签名不同的构造函数。重要的是要注意重载的构造函数必须具有不同的签名,Java 中方法的签名包括方法名称、参数和返回类型。

由于构造函数没有任何返回类型,因此重载的构造函数必须在参数的类型和顺序上有所不同。换句话说,构造函数的签名包括其参数的类型、数量和顺序。

当一个类有多个构造函数时,编译器使用重载决策规则来确定在创建该类的实例时将调用哪个构造函数。重载决策规则用于确保根据传入的参数调用适当的构造函数。请注意,类的构造函数可以是超载的但不能推翻因为基类和派生类的构造函数不能有相同的名称。

在Java中,构造函数永远不能是“虚拟的”

构造函数既不能是虚拟的,也不能返回任何值。要将方法声明为虚拟方法,你需要在其签名中包含关键字 virtual。

子类的方法可以覆盖虚拟方法。但是,你永远不能在派生类中覆盖基类的构造函数。你不能有一个虚拟的构造函数,(即一个类的构造函数永远不能是虚拟的),但你可以有一个虚拟的析构函数。这样做的原因是,在执行构造函数时,虚拟表或 vtable 在内存中将不可用,类的虚拟表只有在类的构造函数完成执行后才可用。

Java中的无参数和参数化构造函数

构造函数既可以是无参数的,也可以是参数化的。顾名思义,无参数构造函数是不接受任何参数或参数的构造函数。默认构造函数是类的唯一无参数构造函数。换句话说,你可以在一个类中有一个——而且只有一个——没有参数的构造函数。

参数化构造函数是可以接受一个或多个参数的构造函数。虽然你可以在 Java 中的一个类中拥有一个且只有一个无参数构造函数,但你可以拥有多个参数化构造函数。

关于 Java 构造函数的最终想法

尽管开发人员可以在其他自定义方法中初始化类的成员,但最好定义构造函数来初始化它们。程序员还应该明确定义默认构造函数并编写自己的代码来初始化类成员——它也提高了可读性。需要注意的是,在 Java 中,构造函数不能是抽象的、最终的、静态的或本机的。

关键词: 构造函数 开发人员 创建对象

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it