본문 바로가기
Programming Study

[명품자바프로그래밍] 5장 실습문제(2)

by 푸고배 2017. 8. 12.

4. main() 함수를 다음과 같이 수행할 수 있도록 하기 위한 CPoiny 클래스와 CColorPoint 클래스를 작성하고 전체 프로그램을 완성하라 CColorPoint 클래스의 어떤 메소드에서도 System.out.println()을 호출해서는 안 된다. CPoint 클래스는 생성자가 오직 하나뿐이다.

public void main(String []arg) {

CPoint a,b;

 

a = new CPoint(2,3);

b = new CColorPoint(3,4,"red");

a.show();

b.show();

System.out.println(a);

System.out.println(b);

}

 

 

<소스코드> Chapter5_4.java



5. 추상 클래스의 서브 클래스 만들기에 필요한 추상 메소드 오버라이딩과 super()의 사용에 관한 문제이다. 다음과 같은 MyPoint 추상 클래스가 있다.

abstract class MyPoint {

int x;

int y;

public MyPoint(int x, int y) {

this.x = x; this.y = y;

}

protected abstract void move(int x, int y); // 새로운 x, y 위치로 이동

protected abstract void reverse(); // (x, y)에서 (y, x)로 위치 변경

protected void show() {

System.out.println(x+","+y);

}

}

 

MyPoint를 상속받는 MyColorPoint 클래스를 작성하라. MyColorPoint의 생성자는 MyColorPoint(int x, int y, String color)로 하라. 그리고 다음과 같은 main() 메소드를 삽입하여 실행되도록 하라.

public static void main(String[] args) {

MyPoint p = new MyColorPoint(2, 3, "blue");

p.move(3,4);

p.reverse();

p.show();

}

 

<소스코드> Chapter5_5.java



6. 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. 본문의 5,6절의 메소드 오버라이딩과 5, 7절은 추상 클래스의 설명 중에 Line, Rect, Circle의 도형 객체를 DObject 클래스를 상속받아 draw() 메소드를 오버라이딩하도록 구성하였다. 이 예제를 완성해보자. DObject를 추상 메소드 draw()를 가진 추상 클래스로 만들어라. 그래픽 편집기의 기능은 "삽입", "삭제", "모두 보기", "종료"의 4가지이다.

 

<소스코드> Chapter5_6.java



 

참고자료 : 생능출판 명품 JAVA Programming

github 주소 : https://github.com/ch1517/First_Step/tree/master/Chapter5/Chapter5

반응형

'Programming Study' 카테고리의 다른 글

[JAVA] Java의 인자 전달  (0) 2017.07.08
[JAVA] ==와 equals() 문자열 비교  (0) 2017.07.07

댓글