Java 中的默认构造函数

Rashmi Patidar 2023年10月12日
  1. Java 中的默认构造函数
  2. Java 中的参数化构造函数
Java 中的默认构造函数

在 Java 语言中,术语构造函数类似于我们在编程中运行的方法。在创建构造函数时,你应该记住它的一些属性。

  1. 构造函数的名称必须与类名的名称一致。
  2. 构造函数不能有任何返回类型。
  3. 一个类中可以有参数化构造函数和无参数构造函数(默认构造函数)。
  4. 构造函数总是在对象被实例化时被调用。
  5. 构造函数不应继续使用 abstract, static, finalsynchronized 等关键字。

Java 中的默认构造函数

Java 默认构造函数通常称为 no-args 构造函数。下面,你可以查看代码块以了解 Java 中的默认构造函数。

public class Main {
  public static void main(String[] args) {
    B b = new B();
    System.out.println(b.a);
  }
}

class B {
  int a;
}

在上面的代码块中,你会看到有两个类;第一个保存 main 方法,另一个用于描述构造函数的功能。

main 函数是程序的入口点,从这里开始执行。因此,驱动类语句 new B() 调用了 B 类的公共 no-argument 构造函数。由于没有给定构造函数的显式定义,编译器会自行创建一个默认构造函数,并在上面的语句中调用它。

构造函数初始化类的变量。当没有定义构造函数时,编译器将变量的值初始化为其默认值。当 B 类的变量 aprintln 函数中被引用时,打印的值在下面的输出中。

输出:

0

Java 中的参数化构造函数

参数化构造函数的用途是在对象创建时传递参数的数量。下面是演示其功能的代码块。

public class Main {
  public static void main(String[] args) {
    A a = new A(1, "One");
    System.out.println(a.a + " " + a.b);
    //      A a1= new A();
  }
}

class A {
  int a;
  String b;

  A(int a, String b) {
    this.a = a;
    this.b = b;
  }
}

在上面的代码块中,A 是一个用于演示参数化构造函数的类。另一个是包含 main 方法的类。在函数中,new A(1, "One") 语句在内部调用 A 类的参数化构造函数。创建的对象被分配给类的引用,并且构造函数的定义在类中定义。

构造函数 A(int a, String b) 初始化 ab 变量的值。在参数中传递的值将被复制到变量中。在 println 函数中,使用引用变量调用 A 类的类变量;它在输出中打印实例化的值,并在其间添加一个空格。

在它旁边,有一个注释语句。我们使用 // 操作符对执行的语句进行评论。语句 new A() 在内部试图找到类的 no-argument 构造函数。如果编译器没有找到任何默认构造函数,它可以创建一个默认构造函数。

这种能力仅限于没有定义显式构造函数的情况。因此,在这种情况下,用户必须手动创建 no-args 构造函数。A a1= new A(); 函数抛出编译时错误。解决此问题的两个选项是创建默认构造函数或更改导致现有语句中断的现有参数化构造函数的签名。因此,该行被注释。

输出:

1 One
作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java Constructor