Question: For these exercises you are required edit in the Comparable interface implementation, a compareTo() method. Point class // A Point object represents a pair of

 For these exercises you are required edit in the Comparable interface

For these exercises you are required edit in the Comparable interface implementation, a compareTo() method.

Point class

// A Point object represents a pair of (x, y) coordinates.

// Class invariant: x >= 0 && y >= 0. (Quadrant I only)

public class Point {

private int x;

private int y;

// Constructs a new point at the given (x, y) location.

// pre: x >= 0 && y >= 0

public Point(int x, int y) {

if (x

throw new IllegalArgumentException();

}

this.x = x;

this.y = y;

}

// Constructs a new point at the origin, (0, 0).

public Point() {

this(0, 0); // calls Point(int, int) constructor

}

// Returns the distance between this Point and (0, 0).

public double distanceFromOrigin() {

return Math.sqrt(x * x + y * y);

}

// Returns whether o refers to a point with the same (x, y)

// coordinates as this point. Robust version.

public boolean equals(Object o) {

if (o instanceof Point) {

Point other = (Point) o;

return this.x == other.getX() && this.y == other.getY();

} else { // not a Point object

return false;

}

}

// Returns the x-coordinate of this point.

public int getX() {

return this.x;

}

// Returns the y-coordinate of this point.

public int getY() {

return this.y;

}

// Returns a String representation of this point.

public String toString() {

return "(" + this.x + ", " + this.y + ")";

}

// Returns a new point, shifted from this one by dx and dy.

// pre: x + dx >= 0 && y + dy >= 0

public Point translate(int dx, int dy) {

return new Point(this.x + dx, this.y + dy);

}

}

PointMainMin class

// A client program that deals with simple points.

// Minimal version, to accompany immutable Point class.

public class PointMainMin {

public static void main(String[] args) {

// create two Point objects

Point p1 = new Point(7, 2);

Point p2 = new Point(4, 3);

// print each point and its distance from the origin

System.out.println("p1 is " + p1);

System.out.printf("distance from origin = %3.2f ",

p1.distanceFromOrigin());

System.out.println("p2 is " + p2);

System.out.printf("distance from origin = %3.2f ",

p2.distanceFromOrigin());

}

}

Modify the point class from Chapter 8 so that it defines a natural ordering by implementing the Comparable interface. Compare the points by MathML must be formed by a element, not -major order; that is, points with smaller MathML must be formed by a element, not -coordinate values should come before those with higher MathML must be formed by a element, not -coordinate values. Break ties by comparing MathML must be formed by a element, not -coordinate values

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!