1. 다음의 왼쪽에 있는 클래스가 오른쪽과 같이 선언되어 있습니다.


 [ 이름 ] CD 클래스

 [ 데이터 ]

 관리번호

 타이틀


 


위의 클래스를 이용해서 다음의 클래스를 선언하십시오.


 [ 이름 ] 음악 CD 클래스

 [ 데이터 ]

 관리번호

 타이틀

 아티스트

 곡명[ ]


 
 




 [ 이름 ] 음악 CD 클래스

 [ 데이터 ]

 관리번호

 타이틀

 아티스트

 곡명 [ ]


 




2. 직사각형을 표현하는 다음과 같은 클래스가 있습니다.



다음은 위의 클래스를 상속해서 만든 정사각형을 표현하는 클래스입니다. 밑줄 친 부분을 적절하게 채우십시오.








3. 다음의 프로그램은 이 장에서 작성한 Lendable 인터페이스( [ 예제 6-24 ] )와 AppCDInfo( [ 예제 6-26 ] ), SeperateVolume 클래스( [ 예제 6-25 ] )를 사용하는 프로그램인데 잘못된 부분이 있습니다. 그 부분을 찾아 수정하십시오.





Lendable 인터페이스는 필드를 가지고 있지 않으므로 Lendable 타입의 오브젝트로 자식의 필드에 접근할 수가 없다. 그러므로 각각 형변환을 해서 필드를 가지고 와야 한다. 


아직 클래스의 인스턴스의 타입을 검사하는 방법이 언급되지 않았는데 이런 문제가 나온 것이 이상하다. 직접 타입을 알아 내는 방법을 찾아 보라는 의도일지도 모르겠다.


일단 인스턴스의 타입을 알아 내어 형변환을 하는 방식으로 문제를 해결한다.





4. 다음과 같은 인터페이스 선언은 문법적으로 잘못이기 때문에 컴파일 에러가 발생합니다. 어느 부분이 잘못되었는지 찾으십시오.





인스턴스를 생성하지 못하게 하고 싶지만 추상 메서드와 필드를 포함하게 하고 싶다면 추상 클래스로 만들 수 있다.



순수한 인터페이스로 만들고 싶다면, 필드와 생성자를 지워야 한다.



+ Recent posts