(define-class (student name) (instance-vars (employer 'None)) ;;NEW (method (greet) (print (list 'hi 'i 'am name))) (method (change-name new-name) (set! name new-name)) (method (find-job new-boss) ;;NEW (set! employer new-boss)) ;;NEW (method (co-workers-greet) ;;NEW (for-each (lambda (p) ;; NEW (if (not (eq? p self)) ;; NEW (ask p 'greet))) ;; NEW (ask employer 'employees)))) ;; NEW (define min (instantiate student 'minxu)) (define chris (instantiate student 'chrislin)) (define charles (instantiate student 'charleschen)) ;;;; in-n-out class defn ;;;;;;;; (define-class (in-n-out location) (instance-vars (employees '())) (method (hire student) (set! employees (cons student employees)) (ask student 'find-job self)) ;; NEW (method (all-greet) (for-each (lambda (p) (ask p 'greet)) employees))) (define in1 (instantiate in-n-out 'pinole)) (define in2 (instantiate in-n-out 'fremont))