class Point(var x: Int, var y: Int) {
override operator fun equals(other: Any?): Boolean {
return (other is Point) && (x == other.x) && (y == other.y)
}
override fun hashCode(): Int {
val result = 31 * x + y
return result
}
}
val p1 = Point(1, 1)
val p2 = Point(2, 2)
val p3 = Point(1, 1)
val equal1 = p1 == p2
//equal1 is False
val equal2 = p1 == p3
//equal2 is True
val equal3 = p1 != p3
//equal3 is False
println("equal1 is $equal1")
println("equal2 is $equal2")
println("equal3 is $equal3")