public class Point { // Con constantes y multiples constructores
    private final double x;
    private final double y;
    public static final Point POINT_ZERO = new Point(0, 0);
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
    public Point() {
        // this = POINT_ZERO; // ERR: cannot assign a value to this.
        // Point(0,0); // ERR: cannot find symbol method Point(int,int)
        // Point(0.0, 0.0); // ERR: cannot find symbol method Point(double,double)
        this(0,0);  // Best practice.
        // https://stackoverflow.com/questions/285177/how-do-i-call-one-constructor-from-another-in-java
        // Note that you can only chain to one constructor, and it has to be
        // the first statement in your constructor body.
        /*
        // Esto tambien funcionaria.
        this.x = POINT_ZERO.x;
        this.y = POINT_ZERO.y;
        */
    }
    public double getX() {
        return this.x;
    }
    public double getY() {
        return this.y;
    }
    @Override
    public String toString() {
        return "(" + this.x + "," + this.y + ")";
    }
}
