shape8: Circle.java

/*
 * Now, let's change implementation of circle
 * to use bounding box, starting at top left
 *
 * Note that Tester.java doesn't change at all
 */

class Circle extends Shape {

	private int width, height; //*1 Change internal representation

	public Circle (int x, int y, int rad) { //*2 But not public API
		this.x = x - rad; //*3 Convert from API to internal
		this.y = y - rad; //*3
		width = 2 * rad; //*3
		height = 2 * rad; //*3
	}

	public void setSize (int rad) { //*2
		width = 2 * rad; //*3
		height = 2 * rad; //*3
	}

	public void draw() {
		System.out.println ("Drawing circle at "
			+ (x + width/2) + ", " + (y + height/2) //*3
			+ ", radius = " + width/2); //*3
	}

	public float area() {
		return (float) ((width/2) * (width/2) * 3.14159); //*3
	}
}
[download file]