더북(TheBook)

연습문제



1. 먼저 객체를 어떤 방법으로 측정하는 double getMeasure() 메서드를 가진 Measurable 인터페이스를 만든다. 그다음 EmployeeMeasurable을 구현하게 한다. 마지막으로 평균 측정치를 계산하는 double average(Measurable[ ] objects) 메서드를 만들어 직원 배열의 평균 급여를 계산하는 데 사용하라.

2. 연습문제 1에 이어서 Measurable largest(Measurable[ ] objects) 메서드를 만든다. 이 메서드로 급여가 가장 높은 직원의 이름을 구하라. 이때 캐스트가 필요한 이유는?

3. String, Scanner, ImageOutputStream의 슈퍼타입을 모두 나열하라. (각 타입은 그 자신의 슈퍼타입이라는 점을 유의한다. 슈퍼타입을 선언하지 않은 클래스나 인터페이스는 Object를 슈퍼타입으로 둔다.)

4. 인수들로 구성된 시퀀스를 돌려주는 IntSequence 클래스의 정적 메서드 of를 구현하라. (예를 들어 IntSequence.of(3, 1, 4, 1, 5, 9)는 값 여섯 개로 구성된 시퀀스를 돌려준다. 익명 클래스의 인스턴스를 반환하게 하면 추가 점수가 있다.)

5. 무한 상수 시퀀스를 돌려주는 IntSequence 클래스의 정적 메서드 constant를 추가하라. (예를 들어 IntSequence.constant(1)은 값 1 1 1…을 돌려준다. 람다 표현식으로 만들면 추가 점수가 있다.)

6. SquareSequence 클래스는 정수 오버플로 때문에 실제로 사각형의 무한 시퀀스를 주지 않는다. 구체적으로 어떻게 작동할까? Sequence<T> 인터페이스와 Sequence<BigInteger>를 구현하는 SquareSequence 클래스를 정의해 문제를 해결하라.

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