Java 使用;这";在爪哇

Java 使用;这";在爪哇,java,this,Java,This,你好,我对java还是个新手。。当涉及到实例变量时,我得到了“this”的概念,但是当我在没有参数的构造函数中使用它时,我会有点困惑。所以我的问题是这样的东西是如何工作的 private double x; private double y; public static final double EPSILON = 1e-5; public static boolean debug = false; public Point(double x, double y){ this.x=

你好,我对java还是个新手。。当涉及到实例变量时,我得到了“this”的概念,但是当我在没有参数的构造函数中使用它时,我会有点困惑。所以我的问题是这样的东西是如何工作的

private double x;
private double y;

public static final double EPSILON = 1e-5;
public static boolean debug = false;


public Point(double x, double y){
    this.x=x;
    this.y=y;  // Done sets the x,y private types to the x,y type provided in the ()
}

public Point(){
    this(0.0,0.0);  //Sets, x and y to doubles of 0.0,0.0?? 
}                   //How does this work? 
我的point()构造函数是否会通过调用点(x,y)构造函数来创建(0.0,0.0)的原点?对此的任何澄清都会对我有很大帮助

调用
this()
时,将该构造函数的调用重定向到另一个构造函数(在本例中是第一个构造函数)。因此创建一个
(0,0)

您基本上声明,每当调用
newpoint()
,它都会被Java替换为
newpoint(0.0,0.0)


有时做相反的事情(调用参数较少的构造函数)会很有用。在这种情况下,每个构造函数只处理其附加参数,这更倾向于“关注点分离”

例如:

public class Point {

    private double x = 0.0d;
    private double y = 0.0d;

    public Point () {
    }

    public Point (double x) {
        this();
        this.x = x;
    }

    public Point (double x, double y) {
        this(x);
        this.y = y;
    }

}
此(参数)
是一种特殊语法,仅在构造函数中可用。它所做的是用给定的参数调用另一个构造函数。因此调用
这个(0.0,0.0)
将调用构造函数
点(double,double)
,其值为
(0.0,0.0)
。这将依次将
x
y
设置为
0.0

Poine()将用0.0初始化x和y

点(双x,双y)将在函数的参数中用x和y初始化x和y

这个点(双x,双y)是Point类的指针

在Point()中,您可以将其视为Point类的构造函数,它将

呼叫点(双x,双y)

“我的point()构造函数是否会通过调用点(x,y)构造函数来创建(0.0,0.0)的原点?”-是的,这就是点<代码>此(…)允许您将构造函数调用链接在一起,以确保对象创建时的状态