亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java中的构造函数重载:什么是&程序示例

什么是 Java 中的构造函数?

构造函数 是一种特殊方法,用于初始化新创建的对象,并在为该对象分配内存后立即调用。它可用于在创建对象时将对象初始化为所需值或默认值。编码者不必为类编写构造函数。

如果没有为类提供用户定义的构造函数,编译器会将成员变量初始化为其默认值。

在本教程中,您将学习-

创建 Java 构造函数的规则

  1. 同名 作为班级
  2. 它甚至不应该返回一个值 void

示例 1 :在 Java 中创建你的第一个构造函数

步骤 1) 在 Java 编辑器中键入以下构造函数。

class Demo{
      int  value1;
      int  value2;
      Demo(){
         value1 = 10;
         value2 = 20;
         System.out.println("Inside Constructor");
     }
 
     public void display(){
        System.out.println("Value1 === "+value1);
        System.out.println("Value2 === "+value2);
    }
 
   public static void main(String args[]){
       Demo d1 = new Demo();
      d1.display();
  }
}

步骤 2) 保存,运行并编译Java中的构造器程序并观察输出。

输出:

Inside Constructor
Value1 === 10
Value2 === 20

Java 中的构造函数重载

Java 构造函数重载是一种技术,其中一个类可以具有任意数量的参数列表不同的构造函数。编译器通过考虑列表中参数的数量及其类型来区分这些构造函数。

类 Account 的有效构造函数示例如下:

Account(int a);
Account (int a,int b);
Account (String a,int b);

示例 2 :了解Java中的构造函数重载

步骤 1) 在编辑器中输入代码。

class Demo{
      int  value1;
      int  value2;
      /*Demo(){
       value1 = 10;
       value2 = 20;
       System.out.println("Inside 1st Constructor");
     }*/
     Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Constructor");
    }
    Demo(int a,int b){
    value1 = a;
    value2 = b;
    System.out.println("Inside 3rd Constructor");
   }
   public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
    Demo d1 = new Demo();
    Demo d2 = new Demo(30);
    Demo d3 = new Demo(30,40);
    d1.display();
    d2.display();
    d3.display();
 }
}

步骤 2) 保存、编译和运行代码。

步骤 3) 错误 =?.在进行 Java 构造函数重载的下一步之前尝试调试错误

第 4 步) Java 中的每个类都有一个默认的构造函数。 class Demo 的默认重载构造函数 Java 是 Demo() .如果您不提供此构造函数,编译器会为您创建它并将变量初始化为默认值。您可以选择覆盖此默认构造函数并将变量初始化为您想要的值,如示例 1 所示。

但是如果你指定一个像Demo(int a)这样的参数化构造函数,并且想使用Java Demo()的默认构造函数,你必须指定它。

换句话说,如果您在 Java 中的重载构造函数被覆盖,并且您想使用默认构造函数 Java,则需要指定它。

第 5 步) 取消注释 # 4-8 行。保存、编译并运行代码。

构造函数链接

考虑一个基类由子类扩展的场景。每当创建子类的对象时,首先调用父类的构造函数。这称为构造函数链接。

示例 3: 理解构造函数链

步骤 1) 将以下代码复制到编辑器中。

class Demo{
   int  value1;
   int  value2;
    Demo(){
      value1 = 1;
      value2 = 2;
      System.out.println("Inside 1st Parent Constructor");
   }
   Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Parent Constructor");
   }
  public void display(){
     System.out.println("Value1 === "+value1);
     System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
     DemoChild d1 = new DemoChild();
     d1.display();
  }
}
class DemoChild extends Demo{
    int value3;
    int value4;
    DemoChild(){
    //super(5);
     value3 = 3;
     value4 = 4;
    System.out.println("Inside the Constructor of Child");
    }
    public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
      System.out.println("Value1 === "+value3);
      System.out.println("Value2 === "+value4);
   }
}

步骤 2) 运行代码。由于构造函数链,当子类DemoChild的对象被创建时,先调用父类的构造函数Demo(),然后再创建子类的构造函数DemoChild()。

预期输出 =

Inside 1st Parent Constructor
Inside the Constructor of Child
Value1 === 1
Value2 === 2
Value1 === 3
Value2 === 4

步骤 3) 你可能会观察到父类Demo的构造函数被重写了。如果你想在创建子对象时调用重写的构造函数 Demo(int a) 而不是默认的构造函数 Demo() 怎么办?

在这种情况下,您可以使用关键字“super” 调用父类的重写构造函数。

语法:-

super();
--or--
super(parameter list);

示例: 如果您的构造函数类似于 Demo(String Name,int a) ,您将指定 super(“Java”,5) .如果使用,关键字super需要是第一行代码 在子类的构造函数中。

第 4 步) 取消注释第 26 行并运行代码。观察输出。

输出:

Inside 2nd Parent Constructor
Inside the Constructor of Child
Value1 === 5
Value2 === 0
Value1 === 3
Value2 === 4

java

  1. C# 构造函数重载
  2. Java Hello World 程序
  3. Java 构造函数
  4. Java枚举构造函数
  5. Java String indexOf() 方法与子字符串和示例
  6. Java String compareTo() 方法:如何与示例一起使用
  7. Java 中的静态变量:什么是静态块和方法 [示例]
  8. 检查质数的Java程序
  9. 用Java打印从1到100的素数的程序
  10. 如何在 Java 中将字符转换为字符串(示例)
  11. 使用 For 循环的 JAVA 程序中的 Armstrong 数
  12. Java中的插入排序算法及程序示例