fork download
  1. Object subclass: Book [
  2. | title borrowed |
  3.  
  4. Book class >> title: aTitle [
  5. ^self new initialize: aTitle
  6. ]
  7.  
  8. initialize: aTitle [
  9. title := aTitle.
  10. borrowed := false.
  11. ]
  12.  
  13. borrow [
  14. borrowed := true.
  15. ]
  16.  
  17. returnBook [
  18. borrowed := false.
  19. ]
  20.  
  21. title [
  22. ^title
  23. ]
  24. ]
  25.  
  26. Object subclass: Student [
  27. | name |
  28.  
  29. Student class >> name: aName [
  30. ^self new initialize: aName
  31. ]
  32.  
  33. initialize: aName [
  34. name := aName.
  35. ]
  36.  
  37. borrow: aBook [
  38. aBook borrow.
  39. Transcript show: name , ' borrowed ' , aBook title; cr.
  40. ]
  41.  
  42. return: aBook [
  43. aBook returnBook.
  44. Transcript show: name , ' returned ' , aBook title; cr.
  45. ]
  46. ]
  47.  
  48. | book student |
  49.  
  50. book := Book title: 'Programming'.
  51. student := Student name: 'Tanaka'.
  52.  
  53. student borrow: book.
  54. student return: book.
Success #stdin #stdout 0.01s 7968KB
stdin
Standard input is empty
stdout
Tanaka borrowed Programming
Tanaka returned Programming