In
Ruby, le classi non sono mai chiuse: si possono sempre aggiungere metodi ad una classe esistente. Questo è applicabile sia alle classi proprie che a quelle standard, precostituite. Tutto quello che c'è da fare è aprire una definizione di classe per una classe esistente, e il nuovo contenuto sarà aggiunto in qualunque posizione.
Ecco il programma
p031motorcycletest.rb e il medoto
dispAttr:
<span style="font-size:1.0em">
require 'motorcycle'
m = MotorCycle.new('Yamaha', 'red') m.startEngine
class MotorCycle
def dispAttr
puts 'Color of MotorCycle is ' + @color
puts 'Make of MotorCycle is ' + @make
end
end
m.dispAttr
m.startEngine
puts self.class
puts self </span>
Da notare che
<span style="font-size:1.0em">self.class</span>
si riferisce a
Object e
<span style="font-size:1.0em">self</span>
si riferisce ad un oggetto chiamato
main della classe
Object. Un altro esempio è il programma
p031xdognext.rb:
<span style="font-size:1.0em">
require 'p029dog.rb'
# define class Dog
class Dog
def big_bark
puts 'Woof! Woof!'
end
end
# make an object
d = Dog.new('Labrador', 'Benzy') d.bark
d.big_bark
d.display </span>
Un ulteriore esempio di aggiunta di un metodo alla classe
String è il programma
p032mystring.rb:
<span style="font-size:1.0em">
class String
def writesize
puts self.size
end
end
size_writer = "Tell me my size!"
size_writer.writesize </span>
"Traduzione e adattamento a cura di Francesca Beatrice Cice. La versione originale del tutorial di
Satish Talim può essere trovata su
rubylearning.com"