Ruby: Programación orientada a objetos Ruby
Publicado: 17 de Feb del 2010Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com
Introducción a Ruby y a la programación orientada a objetos
Clases y objetos
Una clase es una definición de un objeto que contiene atributos a los que representa y métodos que puede ejecutar. En Ruby una clase se define de la siguiente forma:
class Coche
def initialize(color, puertas)
@color = color
@puertas = puertas
end
end
El método initialize es un método especial de Ruby que se utiliza como constructor cada vez que se crea una nueva instancia del objeto.
En Ruby todas las classes deben empezar con letra mayúscula.
Public, private, protected
Los métodos de una clase por defecto, y si no se indica lo contrario, son públicos. Además de público, un método puede ser protected o private.
Para determinar de qué tipo es basta con añadir la palabra clave private al principio de los métodos privados por ejemplo:
class coche
def abrirPuertas
end
def cerrarPuertas
end
private
def abrirGuantera
end
end
end
La palabra clave protected se usa de la misma forma que private con la diferencia que un si una clase hereda el método también puede usarla como si fuera público, mientras que si se llama desde el exterior se comporta como un método privado.
Herencia
Otra de las particularidades de cualquier lenguaje orientado a objetos es sin duda la herencia. En Ruby se define la herencia de la siguiente manera:
class Vehiculo def initialize() end end class Coche < Vehiculo end
La clase coche hereda todos los métodos públicos o protegidos de vehículo.
Al igual que Java por ejemplo, Ruby tampoco soporta la herencia múltiple, es decir, una clase sólo puede heredar de otra clase y no de varias.
Poliformismo
El poliformismo sirve para dar genericidad a un método de una clase. Por ejemplo: Supongamos que tenemos dos tipos de objetos un triangulo y un círculo que heredan la clase forma. La clase forma tiene un método que se llama devolverPerimetro
class
Forma
def devolverPerimetro()
end
end
class Circulo < Forma
def devolverPerimetro()
...
end
end
class Triangulo < Forma
def devolverPerimetro()
...
end
end
Está claro que no se calcula de la misma forma el perímetro de un círculo que el de un triangulo, por ello cada objeto lo definirá de una forma distinta.
El poliformismo nos da la posibilidad de que si tenemos un objeto forma pero no sabemos si es triangulo o circulo, podamos llamar al método devolverPerimetro y nos devolverá el perímetro correcto.
Comentarios
Artículos relacionadosVer más
- Cómo instalar Ruby on Rails en Windows
- Modelo Vista Controlador
- ¿Qué es Ruby on Rails?
- Introducción a Ruby
- Ruby: Programación orientada a objetos
- Tratamiento de excepciones en Ruby
- Paginación en Ruby on Rails
- Urls amigables en Ruby on Rails
- Usando la consola de Ruby on Rails
- Instalar GIT, RVM, Ruby, Ruby on Rails y Passenger