Clases en Ruby
Es muy fácil crearlas en este lenguaje.
Al igual que en Python y/o Groovy no es necesario crear métodos getter y setter para acceder a las propiedades de la clase.
En Python sería algo así:
class Diamante(object):
def __init__(self, valor):
self.valor=valor
#main
diamante=Diamante('20.9')
print "valor :%f\n"%(diamante.valor)
En Groovy así:
class Diamante{
Float valor
}
#main
static main(args){
def diamante=new Diamante(valor:20.9f)
println "valor $diamante.valor"
}
¿Existe la herencia en Ruby?
Si, existe la herencia en este lenguaje. La sintaxis es:
class ClasePadre
...
end
class ClaseHija < ClasePadre
...
end
Ejemplo. Creamos una clase padre llamada 'Animal' y dos clases hijas 'Spider' y 'Bird'
#clase padre
class Animal
attr_accessor :no_patas
def initialize(no_patas)
@no_patas=no_patas
puts "objeto animal creado"
end
end
#clase hija
class Spider < Animal
attr_accessor :especie
def initialize(no_patas, especie)
super(no_patas)
@especie=especie
puts "objeto spider creado"
end
end
#clase hija
class Bird < Animal
attr_accessor :color
def initialize(no_patas, color)
super(no_patas)
@color=color
puts "objeto bird creado"
end
end
Además de heredar la propiedad 'no_patas' de la clase padre 'Animal' las clases hijas pueden poseer otras más. Para terminar creamos el 'main' del programa.
begin
spider=Spider.new(8,'negra')
bird=Bird.new(2,'amarilla')
puts "Spider"
puts "no. de patas:"+spider.no_patas.to_s
puts "color: #{spider.color}"
puts "Bird:"
puts "no. de patas:"+bird.no_patas.to_s
puts "color: #{bird.color}"
rescue Exception => e
puts e.message
end
Ejecutamos: ruby animales.rb
Links
http://codemonkeyjunior.blogspot.mx/2014/03/programando-en-ruby-no-4.html
http://codemonkeyjunior.blogspot.mx/2014/02/programando-en-ruby-no-3.html
http://codemonkeyjunior.blogspot.mx/2014/01/programando-en-ruby-no-2.html
http://codemonkeyjunior.blogspot.mx/2013/06/programando-en-ruby-no-1.html
http://codemonkeyjunior.blogspot.mx/2013/05/un-vistazo-ruby.html
No hay comentarios:
Publicar un comentario