[인경오리 관리 프로그램]

: 인경호에 살고 있는 인경호 오리의 개체 수가 현저히 줄어 현재 3마리만 남게 되었다. 사태의 심각성을 깨달은 한진 재단은 인경 오리를 멸종위기종으로 분류하고 특별 관리를 하려한다.

요구사항 (보기 불편하면 오른쪽 맨 위에 ... 누르고 ‘전체 너비’ 누르면 됨)

  1. [Main.java / Managemant.java / Duck.java] 총 3개의 파일 생성
  2. 인경호는 6 x 16의 크기를 가지고 있다. (주변 육지와 실제 물이 있는 부분)
  3. ‘□’ 는 인경호 주변의 육지를 나타내고 ‘■’ 는 실제 물이 있는 인경호를 나타낸다.
  4. ‘☆’은 오리를 나타내며 인경호 특정 위치에 있을 때 □,■ 대신 ☆로 대체한다
  5. Duck class는 (1) 멤버변수로 위치를 나타낼 xpos, ypos와 육지인지 물인지 파악할 state 변수를 갖는다. (2) 멤버변수는 private 으로 선언하며, getter 와 setter 를 이용한다. (2) 모든 오리의 xpos, ypos는 프로그램 사이클이 돌 때마다 항상 바뀌어야 하며 난수 생성에는 Random 클래스를 사용한다.
  6. management class는 (1) 인경호 출력, 오리 정보 출력 및 랜덤 위치를 만들어내는 함수 등을 포함한다. (이 외 구현 자유) (2) management class는 Duck class를 멤버 변수로 3개 갖는다. (코드 예시 참고) (3) 프로그램은 숫자 ‘0’ 입력을 제외한 다른 입력이 들어오면 인경오리 정보를 계속 갱신해야 한다. (숫자 ‘0‘을 입력하면 프로그램이 종료된다.) (4) 인경호 정보를 먼저 출력한 후에, 1~3번 오리의 정보를 출력한다. (오리의 position, 오리의 state) (5) 인경호 위치정보는 (0, 0)부터 시작해서 (5, 15)로 끝난다

Untitled

코드 예시

public class main {
    public static void main(String[] args) {

        Management management = new Management();
        // ... 이후 코드를 작성하시오.
    }
}
public class Management {

    /* 예시
    private Duck duck1;
    private Duck duck2;
    private Duck duck3;*/

    public Management() {
        /* 예시
        duck1 = new Duck();
        duck2 = new Duck();
        duck3 = new Duck();*/
    }

    public void printLake() {

    }

    public void showAllDuckInfo() {

    }

    public void randomPositionGenerator() {

    }
}
public class Duck {

    private Integer x;
    private Integer y;
    private String status;

    public Duck() {
        x = 0;
        y = 0;
        status = "ground";
    }

    public Integer getX() {
        return null;
    }

    public void setX(int x) {

    }

    public Integer getY() {
        return null;
    }

    public void setY(int y) {

    }

    public String getStatus() {
        return null;
    }

    public void setStatus(String status) {

    }
}

+ Duck class 에서 멤버변수를 직접 사용하지 않고, getter 와 setter 를 이용함으로써 얻는 이점에 대해서 주석으로 설명하세요.