Next Previous Contents

31. <4.2.2>: Arv

  1| require 'klasse2.rb'   # Fortsetter der vi slapp...
  2| 
  3| # Arv - alle studenter er en submengde av alle personer.
  4| class Student < Person
  5|   def initialize( etternavn, fornavn, alder = 0, studiested = "NTNU" )
  6|     # kall super-klassens versjon av metoden
  7|     super( etternavn, fornavn, alder )
  8|     @studiested = studiested
  9|     @karakterer = Array.new # Eventuelt []
 10|   end
 11|   
 12|   # redefinerer Person#to_s metoden.
 13|   def to_s                    
 14|     "#{@etternavn}, #{@fornavn} - studerer ved #{@studiested}."
 15|   end
 16| 
 17|   def ta_eksamen( karakter )
 18|     @karakterer.push karakter
 19|   end
 20| 
 21|   def karaktersnitt
 22|     sum = 0
 23|     @karakterer.each{ |karakter|
 24|       sum += karakter
 25|     }
 26|     sum.to_f / @karakterer.size
 27|   end
 28|   
 29| end
 30| 
 31| if __FILE__ == $0 # Kun når vi kjører denne filen:
 32|   flinkis = Student.new("Einstein", "Al", 128, "Mensa")
 33|   flinkis.ta_eksamen( 1.0 )
 34|   flinkis.ta_eksamen( 2.0 )
 35|   puts flinkis #=> "Einstein, Al - studerer ved Mensa."
 36|   puts flinkis.karaktersnitt #=> 1.5
 37| end

super

et alias for superklassens versjon av den metoden vi er i nå.


Next Previous Contents