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();
}
}
}
;