Java中的默认构造函数和参数化构造函数有什么区别?

默认构造函数

  • 默认构造函数是0参数构造函数 ,其中包含对超类构造函数的无参数调用。

  • 将默认值分配给新创建的对象是默认构造函数的主要职责。

  • 仅当程序未在类中写入任何构造函数时,编译器才会在代码中写入默认构造函数。

  • 默认构造函数的访问修饰符始终与类修饰符相同,但是此规则仅适用于“公共” “默认”修饰符。

编译器何时添加默认构造函数

  • 仅当程序员在代码中未编写构造函数时,编译器才会向代码添加默认构造函数。

  • 如果程序员在代码中编写了任何构造函数,则编译器不会添加任何构造函数。

  • 每个默认构造函数都是0参数构造函数,但每个0参数构造函数都不是默认构造函数。

参数化构造函数

  • 参数化构造函数是具有要传递的特定数量参数的构造函数。

  • 参数化构造函数的目的是将用户想要的特定值分配给不同对象的实例变量。

  • 参数化的构造函数由程序员明确编写。

  • 默认构造函数的访问修饰符始终与类修饰符相同,但是此规则仅适用于“公共”“默认”修饰符。

示例

public class Student {
   int roll_no;
   String stu_name;
   Student(int i, String n) { // Parameterized constructor
      roll_no = i;
      stu_name = n;
   }
   void display() {
      System.out.println(roll_no+" "+stu_name);
   }
   public static void main(String args[]) {
      Student s1 = new Student(1,"Adithya");
      Student s2 = new Student(2,"Jai");
      s1.display();
      s2.display();
   }
}

在上面的程序中,程序员定义了一个带有2个参数的参数化构造函数。现在,编译器没有在代码中添加默认构造函数,并且程序员也没有编写任何0参数构造函数。

输出结果

1 Adithya
2 Jai