home *** CD-ROM | disk | FTP | other *** search
- ; From: Dat Thuc Nguyen
- ; Newsgroups: comp.protocols.kermit.misc
- ; Subject: Object-Oriented Programming in Kermit 95
- ; Date: Tue, 23 Mar 1999 14:45:09 GMT
- ; URL: http://www.smalltickle.com
- ;
- ; OBJECT-ORIENTED PROGRAMMING IS VERY EFFECTIVE IN DESIGNING
- ; AND MAINTAINING SOFTWARE.
- ; KERMIT 95 PROVIDES MECHANISMS TO IMPLEMENT ELEGANTLY SOME
- ; OBJECT-ORIENTED FEATURES.
- ; THE FOLLOWING SCRIPT DEFINES A CLASS PERSON WITH TWO DATA
- ; ATTRIBUTES age, job AND TWO METHODS introduce, destroy.
- ; ALL DATA ATTRIBUTES AND METHODS ARE PUBLIC.
-
- define PERSON {
- _assign \%1.age \%2
- _assign \%1.job \%3
- _assign \%1.introduce {
- echo My name is \%1
- echo I am \\m(\%1.age) years old
- echo I am a \\m(\%1.job)
- }
- _assign \%1.destroy {
- _define \%1.age
- _define \%1.job
- _define \%1.introduce
- }
- }
-
- ; RECENTLY I MET MARK, A 36 YEARS OLD TRUCK DRIVER
- person mark 36 {truck driver}
-
- ; HE INTRODUCES HIMSELF
- mark.introduce
-
- ; HE IS WITH HIS GIRL FRIEND, JANE, A 28 YEARS YOUNG SECRETARY
- person jane 28 secretary
-
- ; SHE ALSO INTRODUCES HERSELF
- jane.introduce
-
- ; THEY ARE OFF ON VACATION, I ERASE THEM FROM MY MEMORY
- mark.destroy
- jane.destroy
-
-
- ; FOLLOWING IS THE CLASS ANIMAL
-
- define ANIMAL {
- _assign \%1.sound \%2
- _assign \%1.introduce {
- echo I am a \%1 ... \\m(\%1.sound)
- }
- _assign \%1.destroy {
- _define \%1.sound
- _define \%1.introduce
- }
- }
-
- ; IN FRONT OF NY HOUSE, THERE IS A DOG
- animal dog woof
-
- ; AND A CAT
- animal cat miaou
-
- ; THE DOG TRIES TO BE FRIENDLY
- dog.introduce
-
- ; THE CAT REPLIES
- cat.introduce
-
- ; I CLOSE THE WINDOW AND FORGET ABOUT THEM
- dog.destroy
- cat.destroy
-
- ; Different objects react differently to the same message, it's polymorphism!
- ; If you want to modify the behavior of all the objects in the same class,
- ; do it in the class definition, no need to browse through the code to update
- ; them. That's efficiency.
-
- end
-