о потрібно було створити два звичайних Smalltalk-класу, один клас, є невізуальними компонентом, п'ять класів, що володіють візуальним інтерфейсом користувача. Крім того, один клас був створений середовищем програмування автоматично і служить внутрішнім цілям середовища. Далі послідовно опишемо зміст користувальницьких класів. br/>В
Рис. 7
4.1 Клас В«HotelBDUserВ»
В
Рис. 8
Object subclass: # HotelBDUser
instanceVariableNames: 'user FName SName sex haveRooms':'':''
FName
^ FName
FName: anObject
FName: = anObject.signalEvent: # name with: anObject
SName
^ SName
SName: anObject
SName: = anObject.signalEvent: # name with: anObject
sex
^ sex
sex: anObject
sex: = anObject.signalEvent: # sex with: anObject
addRoom: room
haveRooms isNil ifTrue: [haveRooms: = OrderedCollection new]. add: room.
haveRoom: RoomType
| flag |: = false.isNil: [do: [: room | (room type = RoomType): [flag: = true]]].
^ flag
printString
| str |: = FName, '', SName, 'підлогу =', sex, '; номер:'.
haveRooms isNil ifTrue: [str: = str, 'ГЌГҐГІ'];
ifFalse: [do: [: an | str: = str, an printString]].
4.2 Клас В«HotelBDRoomВ»
В
Рис.9
Object subclass: # HotelBDRoom
instanceVariableNames: 'number type days':'':''
days
^ days
days: anObject
days: = anObject.signalEvent: # days with: anObject
number
^ number
number: anObject
number: = anObject.signalEvent: # number with: anObject
type
^ type : anObject : = anObject.signalEvent: # type with: anObject
printString
^ 'номер', number, 'типу', type, 'на', days, 'днів;'.
.3 Клас В«HotelBDCoreВ»
В