gpt4 book ai didi

java - 下面的程序中 this(1) 和 this(2) 的目的是什么?

转载 作者:行者123 更新时间:2023-12-01 08:10:22 25 4
gpt4 key购买 nike

在下面的程序中,我使用了 this(1) 和 this(2) 使用 this(1) 和 this(2) 的目的是什么,我还想知道这是一个关键字还是方法?我我是 Java 编程语言新手。

class Const
{
Const()
{
this(1);
System.out.println(1);

}
Const(int x)
{
System.out.println(2);
}
}
class const1 extends Const
{
int a;
const1()
{
this(8);
System.out.println(3);

}
const1(int x)
{

System.out.println(4);

}
public static void main(String s[])
{
new const1();
}
}

最佳答案

这些是alternate constructor invocations 。他们调用同一个类中的另一个构造函数。这允许多个构造函数共享相同的代码以实现共同的行为。没有它,您有时会被迫重复自己。

例如:

Const()
{
this(1);
...
}

使用实际参数“1”调用此构造函数:

Const(int x) { ... }

您可以以类似的方式使用关键字 super() 来调用父类(super class)构造函数。

来自 Java 语言规范,8.8.7.1, Explicit constructor invocations :

Explicit constructor invocation statements can be divided into two kinds:

Alternate constructor invocations begin with the keyword this (possibly prefaced with explicit type arguments). They are used to invoke an alternate constructor of the same class.

Superclass constructor invocations begin with either the keyword super (possibly prefaced with explicit type arguments) or a Primary expression. They are used to invoke a constructor of the direct superclass.

关于java - 下面的程序中 this(1) 和 this(2) 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com