Introducción a Ruby y a la programación orientada a 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:
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.
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:
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.
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:
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.
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
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.