home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / pub / scripts / ckermit / oop < prev    next >
Text File  |  2020-01-01  |  2KB  |  82 lines

  1. ; From: Dat Thuc Nguyen
  2. ; Newsgroups: comp.protocols.kermit.misc
  3. ; Subject: Object-Oriented Programming in Kermit 95
  4. ; Date: Tue, 23 Mar 1999 14:45:09 GMT
  5. ; URL: http://www.smalltickle.com
  6. ;
  7. ; OBJECT-ORIENTED PROGRAMMING IS VERY EFFECTIVE IN DESIGNING
  8. ; AND MAINTAINING SOFTWARE.
  9. ; KERMIT 95 PROVIDES MECHANISMS TO IMPLEMENT ELEGANTLY SOME
  10. ; OBJECT-ORIENTED FEATURES.
  11. ; THE FOLLOWING SCRIPT DEFINES A CLASS PERSON WITH TWO DATA
  12. ; ATTRIBUTES age, job AND TWO METHODS introduce, destroy.
  13. ; ALL DATA ATTRIBUTES AND METHODS ARE PUBLIC.
  14.  
  15. define PERSON {
  16.     _assign \%1.age \%2
  17.     _assign \%1.job \%3
  18.     _assign \%1.introduce {
  19.         echo My name is \%1
  20.         echo I am \\m(\%1.age) years old
  21.         echo I am a \\m(\%1.job)
  22.     }
  23.     _assign \%1.destroy {
  24.         _define \%1.age
  25.         _define \%1.job
  26.         _define \%1.introduce
  27.     }
  28. }
  29.  
  30. ;   RECENTLY I MET MARK, A 36 YEARS OLD TRUCK DRIVER
  31.     person mark 36 {truck driver}
  32.  
  33. ;   HE INTRODUCES HIMSELF
  34.     mark.introduce
  35.  
  36. ;   HE IS WITH HIS GIRL FRIEND, JANE, A 28 YEARS YOUNG SECRETARY
  37.     person jane 28 secretary
  38.  
  39. ;   SHE ALSO INTRODUCES HERSELF
  40.     jane.introduce
  41.  
  42. ;   THEY ARE OFF ON VACATION, I ERASE THEM FROM MY MEMORY
  43.     mark.destroy
  44.     jane.destroy
  45.  
  46.  
  47. ; FOLLOWING IS THE CLASS ANIMAL
  48.  
  49. define ANIMAL {
  50.     _assign \%1.sound \%2
  51.     _assign \%1.introduce {
  52.         echo I am a \%1 ... \\m(\%1.sound)
  53.     }
  54.     _assign \%1.destroy {
  55.         _define \%1.sound
  56.         _define \%1.introduce
  57.     }
  58. }
  59.  
  60. ;   IN FRONT OF NY HOUSE, THERE IS A DOG
  61.     animal dog woof
  62.  
  63. ;   AND A CAT
  64.     animal cat miaou
  65.  
  66. ;   THE DOG TRIES TO BE FRIENDLY
  67.     dog.introduce
  68.  
  69. ;   THE CAT REPLIES
  70.     cat.introduce
  71.  
  72. ;   I CLOSE THE WINDOW AND FORGET ABOUT THEM
  73.     dog.destroy
  74.     cat.destroy
  75.  
  76. ; Different objects react differently to the same message, it's polymorphism!
  77. ; If you want to modify the behavior of all the objects in the same class,
  78. ; do it in the class definition, no need to browse through the code to update
  79. ; them.  That's efficiency.
  80.  
  81. end
  82.