Menu

Question Modify Point Class Chapter 8 Defines Natural Ordering Implementing Comparable Int Q43874028

QUESTION:

Modify the Point class from Chapter 8 so that it defines anatural ordering by implementing the Comparable interface. Comparethe Points by yy-major order; that is, points with smalleryy-coordinate values should come before those with higheryy-coordinate values. Break ties by comparing xx-coordinatevalues.

GIVEN JAVA FILE

// A Point object represents a pair of (x, y) coordinates.
// Class invariant: x >= 0 && y >= 0. (Quadrant Ionly)

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 < 0 || y < 0) {
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 anddy.
// pre: x + dx >= 0 && y + dy >= 0
public Point translate(int dx, int dy) {
return new Point(this.x + dx, this.y + dy);
}
}

GIVEN PointMainMin FILE

// 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.2fn”,
p1.distanceFromOrigin());

System.out.println(“p2 is ” + p2);
System.out.printf(“distance from origin = %3.2fn”,
p2.distanceFromOrigin());
}
}

Expert Answer


Answer to QUESTION: Modify the Point class from Chapter 8 so that it defines a natural ordering by implementing the Comparable int…

OR