Java 这(1)条的目的是甚么;这(2)在以下程序中?
在下面的程序中,我使用了this(1)&this(2)使用this(1)&this(2)的目的是什么?我还想知道这是一个关键字还是一个方法?我对java编程语言是新手Java 这(1)条的目的是甚么;这(2)在以下程序中?,java,methods,this,Java,Methods,This,在下面的程序中,我使用了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 exte
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();
}
}
这些是。它们调用同一类中的另一个构造函数。这允许多个构造函数共享相同的代码以实现共同的行为。没有它,你有时会被迫重复你自己
例如:
Const()
{
this(1);
...
}
使用实际参数“1”调用此构造函数:
您可以以类似的方式使用关键字super()
来调用超类构造函数
根据Java语言规范:
显式构造函数调用语句可分为两类:
备用构造函数调用以关键字this开始(可能以显式类型参数开头)。它们用于调用同一类的备用构造函数
超类构造函数调用以关键字super(可能以显式类型参数开头)或主表达式开始。它们用于调用直接超类的构造函数
这些是。它们调用同一类中的另一个构造函数。这允许多个构造函数共享相同的代码以实现共同的行为。没有它,你有时会被迫重复你自己
例如:
Const()
{
this(1);
...
}
使用实际参数“1”调用此构造函数:
您可以以类似的方式使用关键字super()
来调用超类构造函数
根据Java语言规范:
显式构造函数调用语句可分为两类:
备用构造函数调用以关键字this开始(可能以显式类型参数开头)。它们用于调用同一类的备用构造函数
超类构造函数调用以关键字super(可能以显式类型参数开头)或主表达式开始。它们用于调用直接超类的构造函数
this()
如果在构造函数中使用,则实际上用于调用同一类的另一个构造函数。如果您保持重载构造函数,它尤其有用
public class Rectangle {
private int x, y;
private int width, height;
public Rectangle() {
this(0, 0, 0, 0);
}
public Rectangle(int width, int height) {
this(0, 0, width, height);
}
public Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
...
}
请记住,this()
或super()
必须是构造函数中的第一条语句(如果使用)。因此,它们不能在构造函数中一起使用
此
如果在方法体中使用,将引用调用该方法的当前实例
阅读Oracle教程了解和。this()
如果在构造函数中使用,则实际上用于调用同一类的另一个构造函数。如果您保持重载构造函数,它尤其有用
public class Rectangle {
private int x, y;
private int width, height;
public Rectangle() {
this(0, 0, 0, 0);
}
public Rectangle(int width, int height) {
this(0, 0, width, height);
}
public Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
...
}
请记住,this()
或super()
必须是构造函数中的第一条语句(如果使用)。因此,它们不能在构造函数中一起使用
此
如果在方法体中使用,将引用调用该方法的当前实例
阅读Oracle教程了解和。这类似于为方法创建重载,以便它们模拟具有如下“可选”参数的方法:
DoStuff(int x, int y)
{
//Stuff
}
DoStuff(int x)
{
DoStuff(x, x);
}
除非您在构造函数中执行此操作(如果他们不传递值,请使用值1)。要回答问题,此调用对象的构造函数。类似于为方法创建重载,以便它们模拟具有如下“可选”参数的方法:
DoStuff(int x, int y)
{
//Stuff
}
DoStuff(int x)
{
DoStuff(x, x);
}
除非您在构造函数中执行此操作(如果他们不传递值,请使用值1)。要回答这个问题,这个调用对象的构造函数。你读过《帽子里的猫》吗?(对不起,忍不住!)你读过《帽子里的猫》吗?(对不起,无法抗拒!)