Object subclass: Book [
| title borrowed |
Book class >> title: aTitle [
^self new initialize: aTitle
]
initialize: aTitle [
title := aTitle.
borrowed := false.
]
borrow [
borrowed := true.
]
returnBook [
borrowed := false.
]
title [
^title
]
]
Object subclass: Student [
| name |
Student class >> name: aName [
^self new initialize: aName
]
initialize: aName [
name := aName.
]
borrow: aBook [
aBook borrow.
Transcript show: name , ' borrowed ' , aBook title; cr.
]
return: aBook [
aBook returnBook.
Transcript show: name , ' returned ' , aBook title; cr.
]
]
| book student |
book := Book title: 'Programming'.
student := Student name: 'Tanaka'.
student borrow: book.
student return: book.
T2JqZWN0IHN1YmNsYXNzOiBCb29rIFsKICAgIHwgdGl0bGUgYm9ycm93ZWQgfAoKICAgIEJvb2sgY2xhc3MgPj4gdGl0bGU6IGFUaXRsZSBbCiAgICAgICAgXnNlbGYgbmV3IGluaXRpYWxpemU6IGFUaXRsZQogICAgXQoKICAgIGluaXRpYWxpemU6IGFUaXRsZSBbCiAgICAgICAgdGl0bGUgOj0gYVRpdGxlLgogICAgICAgIGJvcnJvd2VkIDo9IGZhbHNlLgogICAgXQoKICAgIGJvcnJvdyBbCiAgICAgICAgYm9ycm93ZWQgOj0gdHJ1ZS4KICAgIF0KCiAgICByZXR1cm5Cb29rIFsKICAgICAgICBib3Jyb3dlZCA6PSBmYWxzZS4KICAgIF0KCiAgICB0aXRsZSBbCiAgICAgICAgXnRpdGxlCiAgICBdCl0KCk9iamVjdCBzdWJjbGFzczogU3R1ZGVudCBbCiAgICB8IG5hbWUgfAoKICAgIFN0dWRlbnQgY2xhc3MgPj4gbmFtZTogYU5hbWUgWwogICAgICAgIF5zZWxmIG5ldyBpbml0aWFsaXplOiBhTmFtZQogICAgXQoKICAgIGluaXRpYWxpemU6IGFOYW1lIFsKICAgICAgICBuYW1lIDo9IGFOYW1lLgogICAgXQoKICAgIGJvcnJvdzogYUJvb2sgWwogICAgICAgIGFCb29rIGJvcnJvdy4KICAgICAgICBUcmFuc2NyaXB0IHNob3c6IG5hbWUgLCAnIGJvcnJvd2VkICcgLCBhQm9vayB0aXRsZTsgY3IuCiAgICBdCgogICAgcmV0dXJuOiBhQm9vayBbCiAgICAgICAgYUJvb2sgcmV0dXJuQm9vay4KICAgICAgICBUcmFuc2NyaXB0IHNob3c6IG5hbWUgLCAnIHJldHVybmVkICcgLCBhQm9vayB0aXRsZTsgY3IuCiAgICBdCl0KCnwgYm9vayBzdHVkZW50IHwKCmJvb2sgOj0gQm9vayB0aXRsZTogJ1Byb2dyYW1taW5nJy4Kc3R1ZGVudCA6PSBTdHVkZW50IG5hbWU6ICdUYW5ha2EnLgoKc3R1ZGVudCBib3Jyb3c6IGJvb2suCnN0dWRlbnQgcmV0dXJuOiBib29rLg==