Question
For these exercises you are required to edit in the Comparable interface implementation, a compareTo() method, starting with the class definition you obtained from the
For these exercises you are required to edit in the Comparable interface implementation, a compareTo() method, starting with the class definition you obtained from the link, and submit that with a client that uses this ordering. If you are so inclined, you may submit a single client to drive your ordering enhancements for both classes, rather than one for each class.
The exercises, for those without the text:
19. Modify the Point class from Chapter 8 so that it defines a natural ordering by implementing the Comparable interface. Compare the Points by y-major order; that is, points with smaller y-coordinate values should come before those with higher y-coordinate values. Break ties by comparing x-coordinate values.
Please include comments, show the output, and put the text code( not just the screenshot of the code)
here are the class to use(Please use them): were using java
1. Point.java
/* * Your file header comment block goes above this line *
* 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 < 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 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);
}
}
2. PointMainMin.java
/*
* Your file header comment block goes above this line
*
* 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());
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started