Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

QUESTION: Modify the Point class from Chapter 8 so that it defines a natural ordering by implementing the Comparable interface. Compare the Points by yy-major

QUESTION:

Modify the Point class from Chapter 8 so that it defines a natural ordering by implementing the Comparable interface. Compare the Points by yy-major order; that is, points with smaller yy-coordinate values should come before those with higher yy-coordinate values. Break ties by comparing xx-coordinate values.

GIVEN JAVA FILE

// 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); } }

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.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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Objects And Databases International Symposium Sophia Antipolis France June 13 2000 Revised Papers Lncs 1944

Authors: Klaus R. Dittrich ,Giovanna Guerrini ,Isabella Merlo ,Marta Oliva ,M. Elena Rodriguez

2001st Edition

3540416641, 978-3540416647

More Books

Students also viewed these Databases questions

Question

EtOHNaOEt

Answered: 1 week ago