; 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