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