public class Point { //state for our Point private final int x;// final= not reassignable private final int y; public Point(int x, int y) { this.x = x; this.y = y; } public Point() { this(0,0); //calls sibling constructor } public Point reflectionAcrossX() { return new Point(x, -y); } @Override public String toString() { return String.format("(%s, %s)", x, y); } public double distanceTo(Point that) { return Math.hypot(x - that.x, y - that.y); } public static void main(String[] args) { Point p = new Point(3,4); System.out.println(p); System.out.println(p.reflectionAcrossX()); Point origin = new Point(); System.out.println(p.distanceTo(origin)); System.out.println("Naughtinesss"); p.x = 12; System.out.println(p); } }