Computer Science 225
Advanced Programming

Spring 2017, Siena College

ColorPoint BlueJ Project

Click here to download a BlueJ project for ColorPoint.


ColorPoint Source Code

The Java source code for ColorPoint is below. Click on a file name to download it.


ColorPoint.java

/*
 * Example ColorPoint: extend the Point class to have a Color field
 *
 * Jim Teresco, Siena College, Computer Science 225, Spring 2017
 *
 */

import java.awt.Color;

// Note the extends keyword to indicate inheritance
public class ColorPoint extends Point {
    
    /** Additional field: the point's Color */
    protected Color color;
    
    /**
     * construct a ColorPoint at the origin
     * 
     * @param c the Color to associate with this point
     */
    public ColorPoint(Color c) {
        
        // call our superclass constructor
        super();        
        color = c;
    }

    /**
     * construct a ColorPoint at the given coordinates
     * 
     * @param x the x-coordinate of the point
     * @param y the y-coordinate of the pont
     * @param c the Color to associate with this point
     */
    public ColorPoint(double x, double y, Color c) {
        
        // call our superclass constructor
        super(x, y);        
        color = c;
    }
    
    /**
     * override toString method of Point
     * 
     * @return string representation of our ColorPoint
     */
    public String toString() {
        
        return "(" + x + "," + y + ") " + color;
    }
    
    public static void main(String[] args) {
        
        ColorPoint a = new ColorPoint(Color.red);
        Point b = new Point(3, 4);
        ColorPoint c = new ColorPoint(9, 12, Color.blue);
        Point d = new Point(b);
        
        System.out.println("a: " + a);
        System.out.println("b: " + b);
        System.out.println("c: " + c);
        System.out.println("d: " + d);
        
        System.out.println("Distance from b to c: " + b.distance(c));
        System.out.println("Distance from d to origin: " + d.distance());
        System.out.println("Distance from c to (1, 1): " + c.distance(1,1));
    
    }
}

Point.java

/*
 * Example PointOverload: a class demonstrating ad hoc polymorphism
 * by overloading constructors and the distance method
 *
 * Jim Teresco, Siena College, Computer Science 225, Spring 2017
 *
 */

public class Point {

    /** the coordinates */
    protected double x, y;
    
    /**
     * constructor for the default point (0,0)
     */
    public Point() {
        
        // x and y are already 0.0
    }
    
    /**
     * constructor for a point at given x, y coordinates
     * 
     * @param x the x coordinate for the point
     * @param y the y coordinate for the point
     */
    public Point(double x, double y) {
        
        this.x = x;
        this.y = y;
    }
    
    /**
     * constructor for a point to be initialized using another point
     * 
     * @param p the point whose coordinates are to be used for this one's
     */
    public Point(Point p) {
        
        x = p.x;
        y = p.y;
    }
    
    /**
     * compute the distance from this point to another
     * 
     * @param p the other point
     * @return the distance from this point to p
     */
    public double distance(Point p) {
        
        double dx = x - p.x;
        double dy = y - p.y;
        return Math.sqrt(dx * dx + dy * dy);
    }
    
    /**
     * compute the distance from this point to a given coordinate pair
     * 
     * @param x the x-coordinate of the other point
     * @param y the y-coordinate of the other point
     * @return the distance from this point to (x,y)
     */
    public double distance(double x, double y) {
    
        double dx = x - this.x;
        double dy = y - this.y;
        return Math.sqrt(dx * dx + dy * dy);
    }
    
    /**
     * compute the distance from this point to the origin
     * 
     * @return the distance from this point to the origin
     */
    public double distance() {
        
        return Math.sqrt(x * x + y * y);
    }
    
    /**
     * @return string representation of this Point
     */
    public String toString() {
        
        return "(" + x + "," + y + ")";
    }
    
    public static void main(String[] args) {
        
        Point a = new Point();
        Point b = new Point(3, 4);
        Point c = new Point(9, 12);
        Point d = new Point(b);
        
        System.out.println("a: " + a);
        System.out.println("b: " + b);
        System.out.println("c: " + c);
        System.out.println("d: " + d);
        
        System.out.println("Distance from b to c: " + b.distance(c));
        System.out.println("Distance from d to origin: " + d.distance());
        System.out.println("Distance from c to (1, 1): " + c.distance(1,1));
    
    }
}