在下面的程序中我使用了这个(1)和这个(2)使用这个(1)和这个(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();
}
}
Run Code Online (Sandbox Code Playgroud)
这些是备用构造函数调用.它们在同一个类中调用另一个构造函数.这允许多个构造函数共享相同的代码以实现常见行为.没有它,你有时会被迫重复自己.
例如:
Const()
{
this(1);
...
}
Run Code Online (Sandbox Code Playgroud)
使用实际参数"1"调用此构造函数:
Const(int x) { ... }
Run Code Online (Sandbox Code Playgroud)
您可以super()以类似的方式使用关键字来调用超类构造函数.
从Java语言规范,8.8.7.1,显式构造函数调用:
显式构造函数调用语句可以分为两种:
替代构造函数调用以关键字this开头(可能以显式类型参数开头).它们用于调用同一类的备用构造函数.
超类构造函数调用以关键字super(可能以显式类型参数开头)或Primary表达式开头.它们用于调用直接超类的构造函数.