home *** CD-ROM | disk | FTP | other *** search
- class account
- def account::new: {
- show args
- (setq \%c_\%s.balance 0)
- return \%s
- }
- def account::new:deposit: {
- show args
- (setq \%c_\%s.balance \%2)
- return \%s
- }
- def account>>deposit: {
- if not def \m(\%c_\%s.balance) {
- (setq \%c_\%s.balance 0)
- }
- (++ \%c_\%s.balance \%2)
- return \%s
- }
- def account>>balance {
- if not def \m(\%c_\%s.balance) {
- (setq \%c_\%s.balance 0)
- }
- return \m(\%c_\%s.balance)
- }
- def account>>withdraw: {
- if > \%2 \m(\%c_\%s.balance) {
- echo ... not enough balance!
- } else {
- (setq \%c_\%s.balance (- \%c_\%s.balance \%2))
- }
- return \%s
- }
-
- class saving_account inherit: account
-
- saving_account new: sa_1
- (sa_1 'balance)
-
- sa_1 deposit: 250
- (sa_1 'balance)
-
- (sa_1 'withdraw: 35)
- (sa_1 'balance)
-
- ( (sa_1 'withdraw: 15) 'balance )
-
- ( (sa_1 'deposit: 78) 'balance )
-
-