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 |
댓글