domingo, 8 de junio de 2014

Programando en Ruby ... no. 5

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