accumulator_factory_oo.sf 436 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/ruby
  2. class Accumulator (sum) {
  3. method add1(num) {
  4. sum += num;
  5. }
  6. method add2(num) {
  7. self{:sum} += num;
  8. }
  9. method add3(num) {
  10. self.sum += num;
  11. }
  12. method +(num) {
  13. self.sum = (sum + num);
  14. }
  15. }
  16. var x = Accumulator(1);
  17. x.add1(1.25);
  18. x.add2(1.875);
  19. x.add3(1.875);
  20. Accumulator(3); # create another accumulator
  21. say (x + 2.3); # prints: 8.3