IT/솔루션) Power Java

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

돔찌 2019. 5. 12. 17:55

<2016. 10. 11. 12:29>

 

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

 

===========Movable.java(인터페이스)===================
package Programming_1;
//다음과 같은 인터페이스를 정의하라. - interface Movable
public interface Movable {
	void move(int dx, int dy);
}
=========ShapeTest.java=====================
* 다음과 같은 인터페이스를 정의하라. - interface Movable
 * 본문의 ShapeTest.java에 등장하는 2차원 도형인 원, 사각형, 삼각형 등이 위의 인터페이스를 구현하도록 수정하라.
 * move() 메소드는 도형의 기준점을 이동한다. main()에서 moveable 객체 배열을 생성하고
 * 배열의 각 원소에 대하여 move()를 호출하여 랜덤하게 객체를 이동시키는 프로그램을 작성하라.
 */
package Programming_1;
//본문의 ShapeTest.java에 등장하는 2차원 도형인 원, 사각형, 삼각형 등이 위의 인터페이스를 구현하도록 수정하라.
class Shape implements Movable {
	protected int x, y;
	public void move(int dx,int dy) {
		dx = (int)(Math.random()*10)+1;
		dy = (int)(Math.random()*10)+1;
		System.out.printf("좌표는 %d, %d 입니다.\n",dx,dy);
	}
	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()에서 moveable 객체 배열을 생성하고
		Movable[] mmove = new Movable[3];
		mmove[0] = new Triangle();
		mmove[1] = new Rectangle();
		mmove[2] = new Circle();
		//배열의 각 원소에 대하여 move()를 호출하여 랜덤하게 객체를 이동시키는 프로그램을 작성하라.
		for (int i=0; i<mmove.length; i++) {
			mmove[i].move((int)(Math.random()*10)+1,(int)(Math.random()*10)+1);
		}
	}
	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();
		}
	}
}
;