ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Power JAVA 10장 ) 인터페이스와 다형성 - Programming_2
    IT/솔루션) Power Java 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();
    		}
    	}
    }
    ;

    댓글

다치지 말고 운동하자.