home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rox.zip / sessions.rox < prev    next >
Text File  |  1993-08-28  |  2KB  |  114 lines

  1. :*-------------------------------------------------------------------
  2. :* REXX Object eXtensions :
  3. :* classes described in Roger Sessions' book "Class Construction in
  4. :* C and C++", Prentice-Hall, ISBN 0-13-630104-5.
  5. :*-------------------------------------------------------------------
  6.  
  7. :*===================================================================
  8.  
  9. :class performer
  10.  
  11. :vars minSalary
  12.  
  13. :method setMinimumSalary
  14.    minSalary = arg(1)
  15.  
  16.    if (0 = datatype(minSalary,"W")) then
  17.       minSalary = 1000
  18.  
  19.    return self
  20.  
  21. :method bargain
  22.    say "   I get" minSalary * 2 "dollars a performance."
  23.  
  24.    return self
  25.  
  26. :*===================================================================
  27.  
  28. :class animal
  29.  
  30. :vars name sound soundTimes
  31.  
  32. :method init
  33.    name       = arg(1)
  34.    soundTimes = arg(2)
  35.    sound      = arg(3)
  36.  
  37.    if (name = "") then
  38.       name = "unnamed"
  39.  
  40.    if (0 = datatype(soundTimes,"W")) then
  41.       soundTimes = 1
  42.  
  43.    if (sound = "") then
  44.       sound = "..."
  45.  
  46.    return
  47.  
  48. :method says
  49.    say name "says:"
  50.  
  51.    do i = 1 to soundTimes
  52.       say "   "sound
  53.    end
  54.  
  55.    return self
  56.  
  57.  
  58. :*===================================================================
  59.  
  60. :class dog
  61.  
  62. :inherits animal performer
  63.  
  64. :method init
  65.    rc = animal.init(self,arg(1),arg(2),arg(3))
  66.    return
  67.  
  68. :method scratch
  69.    say "   Ooooh... what an itch."
  70.    return self
  71.  
  72. :*===================================================================
  73.  
  74. :class littleDog
  75.  
  76. :inherits dog
  77.  
  78. :method init
  79.    rc = dog.init(self,arg(1),arg(2),arg(3))
  80.    return
  81.  
  82. :method trick
  83.    say "   Watch my trick: I can roll over."
  84.    return self
  85.  
  86. :*===================================================================
  87.  
  88. :class bigDog
  89.  
  90. :inherits dog
  91.  
  92. :method init
  93.    rc = dog.init(self,arg(1),arg(2),arg(3))
  94.    return
  95.  
  96. :method trick
  97.    say "   Watch my trick: I can fetch the letter carrier."
  98.    return self
  99.  
  100. :*===================================================================
  101.  
  102. :class usedCarDealer
  103.  
  104. :inherits animal
  105.  
  106. :method init
  107.    rc = animal.init(self,arg(1),arg(2),arg(3))
  108.    return
  109.  
  110. :method makeSale
  111.    say "   ... and only $500 more if you want the wheels."
  112.    return self
  113.  
  114.