더북(TheBook)

연습문제



1. 달력 출력 프로그램을 수정해서 한 주가 일요일부터 시작하게 하라. 또 줄 넘김은 끝에 한 번만 출력하게 만들어라.

2. Scanner 클래스의 nextInt 메서드를 생각해 보자. 이 메서드는 접근자인가, 변경자인가? 그 이유는? Random 클래스의 nextInt 메서드는 어떤가?

3. void 외의 것을 반환하는 변경자 메서드가 있을 수 있는가? void를 반환하는 접근자 메서드가 있을 수 있는가? 가능하면 예를 제시하라.

4. 자바에서는 왜 두 int 변수의 내용을 맞바꾸는 메서드를 구현할 수 없는가? 그 대신 두 IntHolder 객체의 내용을 맞바꾸는 메서드를 작성하라(API 문서에서 잘 알려지지 않은 IntHolder 클래스를 찾아보자). 두 Integer 객체의 내용을 맞바꿀 수 있는가?

5. 평면에 놓인 점을 기술하는 불변 클래스 Point를 구현하라. 특정 점으로 설정하는 생성자와 원점으로 설정하는 인수 없는 생성자, getX, getY, translate, scale 메서드를 구현하라. translate 메서드는 x와 y 방향으로 주어진 길이만큼 점을 옮긴다. scale 메서드는 주어진 비율로 두 좌표의 크기를 조절한다. 결과로 새로운 점을 반환하도록 이 메서드들을 구현하라. 예를 들어 다음 문장은 p를 (2, 3.5) 좌표에 있는 점으로 설정해야 한다.

Point p = new Point(3, 4).translate(1, 3).scale(0.5);


6. 연습문제 5를 반복하되 이번에는 translatescale을 변경자로 만들어라.

7. 연습문제 5~6에서 만든 Point 클래스의 두 버전에 javadoc 주석을 추가하라.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.