// A very simple class that defines a cartesian point, and has a translate // method, a constructor, and a toString() method. Enforces that the // point is never negative. public class Point { private int x; // an "instance variable" defining the point's x value private int y; // an "instance variable" defining the point's y value // a constructor method for a Point object public Point(int x, int y) { if (x < 0 || y < 0) { throw new IllegalArgumentException("components shouldn't be -ve"); } this.x = x; this.y = y; } // returns X coordinate public int getX() { return this.x; } // returns Y coordinate public int getY() { return this.y; } // sets coordinates public void setLocation(int x, int y) { if (x < 0 || y < 0) { throw new IllegalArgumentException(); } this.x = x; this.y = y; } // this method translates the point by (dx, dy) public void translate(int dx, int dy) { if ( (this.x + dx < 0) || (this.y + dy < 0)) { throw new IllegalArgumentException("components shouldn't be -ve"); } this.x += dx; // "this" is a reference to the object instance this.y += dy; // whose translate method was invoked } // a more useful toString() method to print the Point's value public String toString() { return "(" + this.x + ", " + this.y + ")"; } // implement an equals that compares the coordinates public boolean equals(Point p) { return x == p.x && y == p.y; } }