IT/솔루션) Power Java

Power JAVA 10장 ) 인터페이스와 다형성 - Programming_2

돔찌 2019. 5. 12. 17:56

<2016. 10. 11. 12:30>

 

Power JAVA 10장 ) 인터페이스와 다형성 - Programming_2

 

=============Drawable.java(인터페이스)==================
package Programming_2;
//다음과 같은 인터페이스들을 정의하라. - interface Drawable
public interface Drawable {
	void draw();
}
=================ShapeTest.java=====================
 * 다음과 같은 인터페이스들을 정의하라. - interface Drawable
 * 본문의 ShapeTest.java에 등장하는 2차원 도형인 원, 사각형, 삼각형 등이 위의 인터페이스를 구현하도록 수정하라.
 * draw() 메소드에서는 실제로 그리지는 않고 메세지만 출력하라.
 * main() 에서 Drawable 객체 배열을 생성하고
 * 배열의 각 원소에 대하여 draw()를 호출하여 랜덤하게 객체를 그리는 프로그램을 작성하라.
 */
package Programming_2;
//본문의 ShapeTest.java에 등장하는 2차원 도형인 원, 사각형, 삼각형 등이 위의 인터페이스를 구현하도록 수정하라.
class Shape implements Drawable {
	protected int x, y;
	public void draw() {
		System.out.println("Shape Draw");
	}
}
;
class Rectangle extends Shape {
	private int width, height;
	public void setWidth(int w) {
		width = w;
	}
	public void setHeight(int h) {
		height = h;
	}
	public void draw() {
		System.out.println("Rectangle Draw");
	}
}
;
class Triangle extends Shape {
	private int base, height;
	public void draw() {
		System.out.println("Triangle Draw");
	}
}
;
class Circle extends Shape {
	private int radius;
	public void draw() {
		System.out.println("Circle Draw");
	}
}
;
public class ShapeTest {
	private static Shape arrayOfShapes[];
	public static void main(String arg[]) {
		init();
		drawAll();
		//main() 에서 Drawable 객체 배열을 생성하고
		int select;
		Drawable[] draws = new Drawable[10];
		//배열의 각 원소에 대하여 draw()를 호출하여 랜덤하게 객체를 그리는 프로그램을 작성하라.
		for (int i=0; i<draws.length; i++) {
			select = (int)(Math.random()*3 + 1);
			switch(select) {
				case 1 :
				    draws[i] = new Rectangle();
				break;
				case 2 :
				    draws[i] = new Triangle();
				break;
				case 3 :
				    draws[i] = new Circle();
				break;
			}
			System.out.printf("%d번째 도형 : ",(i+1));
			draws[i].draw();
		}
	}
	public static void init() {
		arrayOfShapes = new Shape[3];
		arrayOfShapes[0] = new Rectangle();
		arrayOfShapes[1] = new Triangle();
		arrayOfShapes[2] = new Circle();
	}
	public static void drawAll() {
		for (int i = 0; i < arrayOfShapes.length; i++) {
			arrayOfShapes[i].draw();
		}
	}
}
;