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

已发表: 2022-11-16

全球对 Web 应用程序的需求正在上升。 Java 已成为需要进行大规模编程的开发人员的首选。 Java 的流行依赖于它的动态特性、用户友好的界面以及与领先操作系统的高度兼容性。 该语言具有丰富的 API。 Java 的另一个优势是它提供了强大的社区支持和出色的文档服务。 不要忘记 Java 提供的开发工具套件。

目录

Java 中的构造函数是什么意思?

Java中的构造函数主要用于初始化对象的状态。 与方法类似,构造函数由一组必须在创建对象时执行的指令或语句组成。

Java 中对构造函数的需求是什么?

为了解释 Java 中对收缩器的需求,让我们举一个盒子的例子。 将盒子视为一个类。 该框将具有不同的变量,例如长度、宽度和高度。 当需要创建一个对象时,框类将不会为其尺寸定义任何值。 创建新对象时,构造函数以两种方式为类变量赋值——通过程序员传递的各种参数或使用默认的 Java 构造函数。

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

在构造函数重载中,定义了同一个类的多个构造函数。 但是,每个构造函数都应该有一个唯一的签名或特定的输入参数。 Java 中构造函数重载程序使单个类可以拥有多个构造函数,这些构造函数的区别在于传递的参数列表。 每个重载的构造函数都用于执行各种类任务。

Java 编译器根据参数类型、参数列表和输入参数的数量来识别重载的构造函数。 很明显,重载的构造函数具有不同的签名。 构造函数的签名将包含其参数类型及其名称。 当两个类构造函数具有相同的签名时,有时会出现歧义问题。 在这种情况下,编译器无法区分两者。 因此它显示错误通知。 有时,存在具有不同签名的重载构造函数。 在这种情况下,编译器会根据不同对象的输入参数的数量来确定是否调用了 conductor。

构造函数重载的例子

在此示例中,我们正在寻找创建类StudentData的两个对象 一个对象使用默认构造函数,而另一个对象使用参数化构造函数。 两个构造函数都有单独的初始化代码。 可以使用 different-2 初始化代码为 different-2 目的创建任何数字的构造函数。

学生数据.java

StudentData

{

私人int stuID;

私有字符串stuName;

私有结构

学生资料()

{

//默认构造函数

学号 = 100 ;

stuName = “新生” ;

学龄 = 18 ;

}

StudentData ( int num1, String str, int num2)

{

//参数化构造函数

stuID = num1;

stuName = 海峡;

stuAge = num2;

}

//getter 和 setter 方法

公共int getStuID() {

返回学号;

}

public void setStuID( int stuID) {

这个.stuID = stuID;

}

公共字符串getStuName() {

返回学名;

}

public void setStuName( String stuName) {

这个.stuName = stuName;

}

公共int getStuAge() {

归还学籍;

}

public void setStuAge( int stuAge) {

这个.stuAge = stuAge;

}

public static void main(字符串args[])

{

//此对象创建将调用默认构造函数

StudentData myobj = new StudentData ();

系统 out .println( “学生姓名是:” +myobj.getStuName());

系统 out .println( “学生年龄是:” +myobj.getStuAge());

系统 out .println( “学号是:” +myobj.getStuID());

/*这个对象创建将调用参数化

* 构造函数 StudentData(int, String, int)*/

StudentData myobj2 = new StudentData ( 555 , “Chaitanya” , 25 );

系统 out .println( “学生姓名是:” +myobj2.getStuName());

系统 out .println( “学生年龄是:” +myobj2.getStuAge());

系统 out .println( “学号是:” +myobj2.getStuID());

}

}

输出:

学生姓名学生

学生年龄 18 _

100

学生姓名 Chaitanya

学生年龄 25 _

学生 555

参考: https ://beginnersbook.com/2013/05/constructor-overloading/

从世界一流大学在线学习软件开发课程。 获得执行 PG 课程、高级证书课程或硕士课程,以快速推进您的职业生涯。

理解this()在构造函数重载中的作用

公共OverloadingExample2

{

私有int rollNum;

重载示例2 ()

{

滚动数 = 100 ;

}

重载示例 2 ( int rnum)

{

这个();

/*this() 用于调用默认

* 参数化构造函数中的构造函数。

* 它应该总是第一个语句

* 在构造函数体内。

*/

rollNum = rollNum + rnum;

}

public int getRollNum() {

返回rollNum;

}

public void setRollNum( int rollNum) {

这个.rollNum = rollNum;

}

public static void main(字符串args[])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12 );

系统 输出.println(obj.getRollNum());

}

}

输出

112

参考: https ://beginnersbook.com/2013/05/constructor-overloading/
upGrad 为您举办的独家软件开发网络研讨会 –
upGrad 为您举办的独家软件开发网络研讨会 –

SAAS 业务——有何不同?

在上面提到的程序中,参数化构造函数在创建对象的过程中被调用。 默认构造函数被调用,因为 this () 被放置在参数化构造函数中。 变量rollNum被初始化。

另一个例子:

当你没有实现任何构造函数时,java编译器会在编译时插入一个默认的构造函数到代码中。 但是,当您实现任何构造函数时,编译器不会这样做。 请参阅此处的示例以更好地理解这一点:

公开Demo

{

私有int rollNum;

//我们没有在这里定义一个无参数的构造函数

演示整数

{

rollNum = rollNum + rnum;

}

//Getter 和 Setter 方法

public static void main(字符串args[])

{

//此语句将调用无参数构造函数

Demo obj = new Demo ();

}

}

输出:

线程“main” java.lang中的异常错误未解决的编译

问题:构造函数Demo ( )未定义

软件工程热门课程和文章

热门节目
软件开发执行 PG 课程 - IIIT B 区块链证书课程 - PURDUE 网络安全证书计划 - 普杜 计算机科学硕士 - IIIT B
其他热门文章
2021-22 年美国云工程师薪资 AWS 解决方案架构师在美国的薪水 美国的后端开发人员薪水 美国的前端开发人员薪水
Web开发人员在美国的薪水 2022 年 Scrum Master 面试问题 如何在 2022 年开始网络安全职业? 工程专业学生在美国的职业选择

解释构造函数重载的使用

通过构造重载,可以用不同的方式使一个对象创建一个特定的类。 因此,根据程序员的要求,这个概念被用于各种 Java 程序中。 在 Java 中使用构造函数重载时,可以使用不同的数据类型初始化对象。

例如,考虑有一个具有三个类实例变量的对象。 您必须为第二个实例变量分配特定值,为其他变量分配默认值。 通过根据组成类中的不同签名声明多个构造函数来实现这一点。

Java中构造函数重载的优点

下面提到的是在编写 Java 程序时使用构造函数重载的主要优点:

  • 您可以使用构造函数重载以各种方式初始化类实例。
  • 通过构造函数重载,您可以实现静态多态性。
  • 每个重载的构造函数为特定目的执行不同的任务。
  • Java 中的构造函数重载简化了在具有唯一特定签名的单个类中定义多个构造函数的过程。

结论

本文讨论Java 中的构造函数重载程序及其好处。 当存在重载的构造函数时,一个类的构造函数不止一个,具有不同的签名。 为了编译,每个构造函数必须有不同的参数列表。 参数列表将包含参数的类型和顺序。 在一个类中不可能有两个具有相同参数列表的构造函数。

upGrad 面向软件开发人员和技术专业人员的全栈开发证书计划

无论您是软件开发行业的新手还是希望提升技能,都必须通过相关课程学习新的技能和技术。 全栈开发就是这样一门课程。

upGrad 感兴趣的候选人提供软件开发执行计划,专门为 IT 专业人员、软件开发人员、技术支持专业人员、分析师和希望进入软件开发领域的应届毕业生设计。

通过本课程,您将精通 JavaScript 并学习微服务和 MERN 堆栈。 除了学习近 10 种以上的编程语言和工具,您还将学习在 Facebook、沃尔玛、Netflix 和 LinkedIn 上广泛使用的各种工具。 该计划在 Cloud Labs 上提供身临其境的学习体验。

参加此证书课程的学生将有机会在 Capstone 项目中设计、开发、测试和部署 Web 应用程序。 学习者可以与领先的行业导师进行一对一的职业指导课程,并享受这些好处。 完成课程后,您可以担任全栈开发人员、UI 开发人员、前端和后端开发人员。

立即申请报名参加课程!

Java中的构造函数有什么用?

Java 中的构造函数用于初始化对象和创建类的对象。 您还可以为对象特征和属性设置初始值。 构造函数就像一个代码块,类似于一个方法或一个过程。

静态类是否会发生构造函数重载?

有趣的是,静态导体不能超载或继承。 自动调用静态导体。 在程序中执行静态构造函数时,用户无法控制。

构造函数重载和方法重载之间有区别吗?

方法用于执行某些类功能,而构造函数用于初始化对象。 当你创建一个对象时,构造函数被隐式调用。 但是,方法必须由用户显式调用。