// Represents a colored two-dimensional point 	
	
package geometry;	
	
import java.awt.*;	
	
public class ColoredPoint extends Point {	
	// instance variable 	
	Color color;	
		
	// ColoredPoint(): default constructor 	
	public ColoredPoint() {	
		setColor(Color.BLUE);	
	}	
		
	// ColoredPoint(): specific constructor 	
	public ColoredPoint(int x, int y, Color c) {	
		super(x, y);	
		setColor(c);	
	}	
		
	// getColor(): color property accessor 	
	public Color getColor() {	
		return color;	
	}	
		
	// setColor(): color property mutator 	
	public void setColor(Color c) {	
		color = c;	
	}	
		
	// clone(): clone facilitator 	
	public Object clone() {	
		int a = (int) getX();	
		int b = (int) getY();	
		Color c = getColor();	
		return new ColoredPoint(a, b, c);	
	}	
		
	// toString(): string representation facilitator 	
	public String toString() {	
		int a = (int) getX();	
		int b = (int) getY();	
		Color c = getColor();	
		return getClass() + "[" + a + ", " + b + ", " + c + "]";	
	}	
		
	// equals(): equal facilitator 	
	public boolean equals(Object v) {	
		if (v instanceof ColoredPoint) {	
			Color c1 = getColor();	
			Color c2 = ((ColoredPoint) v).getColor();	
			return super.equals(v) && c1.equals(c2);	
		}	
		else {	
			return false;	
		}	
	}	
}	
	
