아래의 연습은 System Browser의 상단에 위치한 네 개의 창의 연동에 대해 연습하겠습니다.
그림 B-1을 참조해 주십시오.
그림 B-1. 시스템 브라우저의 화면 구성-(그림 7-4와 같음)
맨 처음 창은 패키지의 목록입니다. 우선 Magnitude를 찾을때까지 스크롤합니다. 찾았다면 명칭 왼쪽에 있는 십자버튼을 클릭해서 전개합니다. 그리고, Magnitude-General을 클릭(선택)해 주십시오. 그러면 옆 창에 다섯 가지 클래스가 목록에 표시 됩니다.
- Character
- Date
- Magnitude
- Time
- TimeZone
이것은 클래스 창입니다. 그러면 Date를 클릭(선택)해 주십시오. 세 번째 창은 프로토콜 목록입니다. 이 목록은 선택된 상부 창의 탭에 의존합니다. 클래스 탭을 클릭해 주십시오. 네 개의 프로토콜이 목록에 표시 됩니다.
- class initialization
- general inquiries
- instance creation
- private
Instance creation 프로토콜을 클릭(선택)해 주십시오. 옆 창에는 여섯 개의 메서드가 목록에 표시 됩니다.
- fromDays:
- newDay:month:year:
- newDay:monthNumber:year:
- newDay:year
- readFrom:
- today
today 메서드를 클릭(선택)해 주십시오. 텍스트가 아래 메서드 뷰에 표시됩니다. 이것은 Date 클래스의 today 메서드에 대한 실제 소스코드입니다.
지금까지 설명한대로 선택하면, 화면은 아래와 같이 표시되어 있을 것입니다.
그림 B-2. Date 클래스의 today 메서드
프로토콜 목록 상부에 있는 인스턴스 탭을 클릭해 주십시오. 프로토콜 목록이 변경되었습니다. Date 클래스의 인스턴스 메서드가 표시되어 있습니다.
클래스와 인스턴스라는 두 종류의 메서드의 구별을 이해하기 위해 아래와 같은 코드를 실행해 주십시오.
1. 새로운 Workspace를 엽니다.
2. 아래와 같은 코드를 입력해 주십시오.
3. 모든 코드를 반전(선택)하고 <오퍼레이트 클릭>후 Print를 선택해 주십시오.
코드 옆에 "오늘"의 날짜가 표시됩니다.
4. 새로 아래와 같은 코드를 입력해 주십시오.
5. 모든 코드를 반전(선택)하고 <오퍼레이트 클릭>후 Print를 선택해 주십시오.
아래와 같은 다이얼로그 박스가 표시됩니다.
그림 B-3. notifier 다이얼로그 박스
이것이 발생하는 이유는 Date클래스의 클래스측 메서드에 addDays: 메서드가 존재하지 않기 때문입니다. addDays:는 Date 클래스의 인스턴스에 존재합니다. today 메서드는 클래스 메서드이기 때문에 Date 클래스에서 동작합니다.
6. notifier 다이얼로그 박스를 닫아 주십시오.
7. 그리고, 아래 코드를 입력해 주십시오.
8. 모든 코드를 반전(선택)하고 <오퍼레이트 클릭>후 Print를 선택해 주십시오.
코드 옆에 "내일"의 날짜가 표시됩니다.
9. 그러면 아래 코드를 입력해 주십시오
10. 모든 코드를 반전(선택)하고 <오퍼레이트 클릭>후 프린트를 선택해 주십시오
계속, 수정, 혹은 취소를 묻는 다이얼로그 박스가 표시됩니다. 왜냐면, Date 클래스에 tomorrow라는 메서드가 존재하지 않기 때문입니다. 그러면, 실행할 수 있도록 바꿔봅시다. 여기서는 System Browser를 사용한 변경방법을 설명하겠습니다.
11. 프로토콜 목록 상부의 클래스 탭을 클릭해 주십시오. 네 개의 프로토콜이 목록에 표시 됩니다.
12. instance creation 프로토콜을 클릭(선택)해 주십시오. 표시된 메서드 목록의 여섯 개의 메서드 마지막에 {{HighlightBold|today} 메서드가 표시됩니다.
13. today 메서드를 클릭(선택)해 주십시오. today 메서드의 소스코드를 봐주십시오.
14. 메서드 코드 뷰를 아래와 같이 바꿔주십시오.
tomorrow
^self today addDays: 1
15. 메서드 코드 뷰에서 <오퍼레이트 클릭>후 Accept를 선택해 주십시오. 타이핑 미스가 없다면 입력된 코드는 "컴파일"되어 tomorrow 메서드가 Date 클래스의 클래스쪽 목록에 표시됩니다.
아래 그림과 같은지 확인해 주십시오.
그림 B-4. 클래스쪽의 tomorrow 메서드
16. Workspace에 아래와 같이 코드를 입력해 주십시오.
17. 모든 코드를 반전(선택)하고 <오퍼레이트 클릭>후 Print를 선택해 주십시오
코드 옆에 "내일"의 날짜가 표시됩니다.
|