previous | start | next

Example Class Type I

A graphical application draws points. A class defines a "point" type allows defining point variables and creating "point" instances.

public class Point2D 
{

        private final double x;    // x coordinate
        private final double y;    // y coordinate

        // Constructor: initialize the (x,y) members of a new point
        public Point2D(final double x, final double y) {
                this.x = x;
                this.y = y;
        }

        public double x() { return x; }
        public double y() { return y; }

        public double distanceTo(final Point2D that) {
                final double dx = this.x - that.x;
                final double dy = this.y - that.y;
                return Math.sqrt(dx*dx + dy*dy);
        }

        public boolean equals(final Object other) {
                if (other == this) return true;
                if (other instanceof Point2D) {
                  Point2D that = (Point2D) other;
                  return this.x == that.x && this.y == that.y;
                } else {
                  return false;
                }
        }

        public int hashCode() {
                return 31 * x + y;
        }

        public String toString() {
                return "(" + x + ", " + y + ")";
        }

        // plot using StdDraw
        public void draw() {
                StdDraw.point(x, y);
        }

        // draw line from this point p to q using StdDraw
        public void drawTo(final Point2D that) {
                StdDraw.line(this.x, this.y, that.x, that.y);
        }
}


previous | start | next