import java.io.*;
import java.lang.reflect.*;
import java.util.*;

class Point {
	final double x, y;
	
	public Point(double x, double y) {
		this.x = x;
		this.y = y;
	}
	
	public double getX() {
		return this.x;
	}
	
	public double getY() {
		return this.y;
	}
	
	public boolean equals(Object o) {
		Point p = (Point)o;
		return this.x == p.getX() && this.y == p.getY();
	}
}

public class Main {
	public static void main(String[] args) {
		Point p = new Point(1,2);
		Point q = new Point(1,2);
		
		System.out.println(p == q);
		System.out.println(p.equals(q));
		
		try {
			Field f = Field.class.getDeclaredField("modifiers");
			Field x = Point.class.getDeclaredField("x");
			Field y = Point.class.getDeclaredField("y");
			
			f.setAccessible(true);
			x.setAccessible(true);
			y.setAccessible(true);
			f.setInt(x, x.getModifiers() & ~Modifier.FINAL);
			f.setInt(y, y.getModifiers() & ~Modifier.FINAL);
			
			x.set(p, 0);
			y.set(p, 1);
			x.set(q, 2);
			y.set(q, 3);
		} catch (Exception e) {
			System.out.println("We are having some issues");
			return;
		}
		
		System.out.println(p == q);
		System.out.println(p.equals(q));
	}
}