我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Java】 Java 中的构造函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Java】 Java 中的构造函数

本文仅供学习参考!

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

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

Java 中的构造函数是什么?

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

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

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

以下代码示例说明了如何在 Java 中定义类:

class MyFirstJavaClass {  MyFirstJavaClass() {    // This is the constructor body  }}

请注意,在前面的 Java 代码示例中,类的名称和类的构造函数的名称是相同的。

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

Java中的构造函数重载是一种为同一个类创建多个构造函数的方法。这允许开发人员在一个类中创建多个具有相同名称但签名不同的构造函数。

需要注意的是,重载的构造函数必须具有不同的签名。Java 中方法的签名包括方法名称参数返回类型

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

当一个类具有多个构造函数时,编译器将使用重载解析规则来确定在创建该类的实例时将调用哪个构造函数。重载解析规则用于确保根据传入的参数调用适当的构造函数。

请注意,类的构造函数可以重载但不能重写,因为基类和派生类的构造函数永远不能具有相同的名称。

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

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

子类的方法可以重写虚方法。但是,您永远不能在派生类中重写基类的构造函数。您不能拥有虚拟构造函数(即类的构造函数永远不能是虚拟的),但可以拥有虚拟析构函数。

这样做的原因是,当构造函数正在执行时,虚拟表或vtable在内存中将不可用。类的虚表仅在类的构造函数执行完毕后才可用。

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

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

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

现在,请参考下面给出的代码示例。它展示了如何在 Java 中为类实现无参构造函数:

public class MyClass {private int x;public MyClass() {x = 0;System.out.println("No-argument constructor called...");}public static void main(String[] args) {MyClass obj = new MyClass();}}

下面的代码示例说明了如何在 Java 中为类定义参数构造函数:

public class MyClass {private int x;private int y;public MyClass(int i, int j) {x = i;y = j;}public int getValueOfX(){    return x;}public int getValueOfY(){    return y;}public static void main(String[] args) {MyClass obj = new MyClass(5, 10);System.out.printf("Printing the value of x : %d\n", obj.getValueOfX());System.out.printf("Printing the value of y : %d", obj.getValueOfY());}}

Java 中的复制构造函数

在 Java 中,复制构造函数可以定义为通过复制该类的当前实例来创建该类的新实例的构造函数。当您需要创建类的新实例,然后能够更改对象的状态而不影响原始对象时,请使用复制构造函数。因此,原始对象的状态在被复制后保持不变。

以下是在 Java 中使用复制构造函数的语法:

MyClass(MyClass obj) {//这是复制构造函数的主体。 } 

要为类创建复制构造函数,程序员应该为类定义一个参数构造函数,其中参数的类型与类类型相同。以下代码示例展示了如何在 Java 中定义复制构造函数:

public class Product { private int id; private String name; public Product(Product product) { this.id = product.id; this.name = product.name; } 

开发人员可以在 Java 中使用两种类型的复制构造函数:一种使用浅复制,另一种使用深复制

Java继承中构造函数的执行顺序

属于类的构造函数按照类被继承的顺序被调用。相反,对析构函数的调用遵循相反的顺序。

下面的代码示例展示了如何在 Java 继承中调用构造函数:

public class HelloWorld {    public static void main(String []args) {        C obj = new C();    }}class A {    public A() {        System.out.println("Constructor of class A called...");    }}class B extends A {    public B() {        System.out.println("\nConstructor of class B called...");    }}class C extends B {    public C() {        System.out.println("Constructor of class C called...");    }}

当您执行上面的代码时,控制台窗口中的输出如下所示:

Java 构造函数教程

图 1:演示构造函数是按继承顺序执行的。

END

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

来源地址:https://blog.csdn.net/m0_47015897/article/details/131412360

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Java】 Java 中的构造函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java中构造函数是什么

构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值。构造函数是在构建创造时对象时调用函数,作用是可以给对象进行初始化,创建对象都必须要通过构造函数初始化。(推荐学习:java课程)一个类中如果没有定
java中构造函数是什么
2021-06-06

Java编程中构造函数的使用

Java编程中构造函数的使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.构造函数的概念  很多java新手谈到构造函数就会犯晕,我们先来看看什么是构造函数
2023-05-30

什么是java构造函数

构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值。构造函数是在构建创造时对象时调用函数,作用是可以给对象进行初始化,创建对象都必须要通过构造函数初始化。一个类中如果没有定义过构造函数,那么该类会有
什么是java构造函数
2021-05-19

java怎么写构造函数

java怎么写构造函数1、java构造函数也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。(推荐教程:java教程 )二、构造函数的特点1、函数名与类
java怎么写构造函数
2016-05-29

Java 构造函数的特点具体有哪些呢?(java构造函数的特点有哪些)

在Java编程中,构造函数是一个非常重要的概念。它用于创建对象并初始化对象的状态。以下是Java构造函数的一些特点:一、构造函数的名称与类名相同这是构造函数的一个基本特点,通过这个特点,Java虚拟机能够识别出哪个方法
Java 构造函数的特点具体有哪些呢?(java构造函数的特点有哪些)
Java2024-12-14

如何分析JAVA构造函数

如何分析JAVA构造函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 一、什么是构造函数Java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相
2023-06-21

Java 中内部类的构造函数究竟该如何定义?(Java中内部类的构造函数如何定义)

在Java编程中,内部类是一种非常有用的特性,它允许在一个类的内部定义另一个类。内部类可以访问外部类的成员,包括私有成员,这为代码的组织和封装提供了很大的灵活性。然而,对于内部类的构造函数的定义,很多Java开发者可能会感到困惑。本文将详细介绍Java中内部类的构造函数的定义方法,
Java 中内部类的构造函数究竟该如何定义?(Java中内部类的构造函数如何定义)
Java2024-12-18

如何理解 Java 构造函数的作用域?(java构造函数的作用域如何理解)

在Java编程中,构造函数是一种特殊的方法,用于创建和初始化对象。理解构造函数的作用域对于编写高质量的Java代码至关重要。本文将深入探讨Java构造函数的作用域,包括其定义、访问控制、作用范围以及与其他成员的关系。一、构造函数的定义
如何理解 Java 构造函数的作用域?(java构造函数的作用域如何理解)
Java2024-12-15

java函数——构造函数与成员函数的异同点

构造函数和成员函数的异同点1、外界调用角度构造函数只能在创建对象时调用;成员函数只能在对象创建之后调用,可以重复的。相关视频教程分享:java视频2、返回值角度构造函数不需要返回值;成员函数可需可不需。3、权限修饰符构造函数可以用任意权限修饰符;成员函数也可以
java函数——构造函数与成员函数的异同点
2015-09-16

java构造函数的特点有哪些

Java构造函数的特点有以下几点:1. 构造函数的名称必须与类名完全相同,且没有返回类型,包括void类型。2. 构造函数在创建对象时被自动调用,用于初始化对象的成员变量。3. 构造函数可以有多个参数,用于接收外部传递的数据。4. 构造函数
2023-08-31

Java 构造函数是否能够进行继承?(Java构造函数是否支持继承)

在Java编程中,构造函数是用于创建对象并初始化对象状态的特殊方法。对于许多编程语言来说,继承是一种重要的特性,它允许子类继承父类的属性和方法。那么,Java构造函数是否支持继承呢?这是一个常见的问题,下面我们将详细探讨这个问题。一、构造函数的基本概念
Java 构造函数是否能够进行继承?(Java构造函数是否支持继承)
Java2024-12-17

Java 构造函数是否能够支持泛型呢?(Java构造函数是否支持泛型)

在Java编程中,构造函数是用于创建对象并初始化对象状态的特殊方法。而泛型则是一种在编译时提供类型安全的机制,它允许我们编写可以处理不同类型数据的代码。那么,Java构造函数是否支持泛型呢?这是一个值得探讨的问题。首先,让我们来了解一下Java中的构造函数。构造函数的
Java 构造函数是否能够支持泛型呢?(Java构造函数是否支持泛型)
Java2024-12-14

Java 构造函数在实际项目中的应用方式有哪些?(Java构造函数在实际项目中如何应用)

在Java编程中,构造函数是一种特殊的方法,用于创建和初始化对象。它在实际项目中扮演着重要的角色,能够确保对象在创建时处于有效的状态,并为对象的属性赋予合适的初始值。一、构造函数的基本概念构造函数的名称与类名相同,它没有返回
Java 构造函数在实际项目中的应用方式有哪些?(Java构造函数在实际项目中如何应用)
Java2024-12-22

Java 中继承构造函数的调用顺序究竟是怎样的?(java继承构造函数调用顺序是什么)

在Java编程中,继承是一种重要的面向对象编程特性,它允许一个类继承另一个类的属性和方法。当一个子类继承父类时,子类的构造函数会调用父类的构造函数,这就涉及到继承构造函数的调用顺序问题。本文将详细介绍Java继承构造函数的调用顺序。一、继承的基本概念
Java 中继承构造函数的调用顺序究竟是怎样的?(java继承构造函数调用顺序是什么)
Java2024-12-20

java枚举类的构造函数实例详解

java枚举类的构造函数实例详解首先,给出一个例题如下:enum AccountType{ SAVING, FIXED, CURRENT; private AccountType() { System.out.println(“
2023-05-31

Java 构造函数参数传递究竟有哪些讲究呢?(java构造函数参数传递有讲究吗)

在Java编程中,构造函数是创建对象时必不可少的部分,而构造函数参数传递更是其中的关键环节。它不仅影响着对象的初始化过程,还对代码的可读性、可维护性以及程序的性能等方面都有着重要的影响。一、基本概念构造函数是类的一种特殊方法
Java 构造函数参数传递究竟有哪些讲究呢?(java构造函数参数传递有讲究吗)
Java2024-12-15

PHP 中的构造函数

在本文中,我们将介绍 PHP 构造函数。我们将看到如何使用 __construct() 函数来初始化类中实例的属性。我们还将使用该函数来初始化类中具有给定参数的对象的属性。最后,我们将看到如何在子类中启动对象并在两个类都有单独的构造函数时调
PHP 中的构造函数
2024-02-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录