14 - Clases

[editar]
Tutorial creado por matz. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-guia-usuario-ruby/doc-guia-usuario-ruby-html/
27 de Febrero de 2006
El mundo real está lleno de objetos que podemos clasificar. Por ejemplo, un niño muy pequeño es probable que diga "guau guau" cuando vea un perro, independientemente de su raza; naturalmente vemos el mundo en base a estas categorías.

En terminología OO, una categoría de objetos, como "perro", se denomina clase y cualquier objeto determinado que pertenece a una clase se conoce como instancia de esa clase.

Generalmente, en Ruby y en cualquier otro lenguaje OO, se define primero las características de una clase, luego se crean las instancias. Para mostrar el proceso, definamos primero una clase muy simple Perro.

|| ruby> class Perro
ruby| def ladra
ruby| print "guau guau\n"
ruby| end
ruby| end
nil
||

En Ruby, la definición de una clase es la región de código que se encuentra entre las palabras reservadas class y end. Dentro de esta área, def inicia la definición de un método, que como se dijo en el capítulo anterior, corresponde con algún comportamiento específico de los objetos de esa clase.

Ahora que tenemos definida la clase Perro, vamos a utilizarla:

|| ruby> rufi = Perro.new
#<Perro:0x401c444c>
||

Hemos creado una instancia nueva de la clase Perro y le hemos llamado rufi. El método new de cualquier clase, crea una nueva instancia. Dado que rufi es un Perro, según la definición de la clase, tiene las propiedades que se decidió que un Perro debía tener. Dado que la idea de Perrunidad es muy simple, sólo hay una cosa que puede hacer rufi

|| ruby> rufi.ladra
guau guau
nil
||

La creación de una instancia de una clase se conoce, a veces, como instanciación. Es necesario tener un perro antes de experimentar el placer de su conversación; no se puede pedir simplemente a la clase Perro que ladre para nosotros:

|| ruby> Perro.ladra
ERR: (eval):1: undefined method `ladra' for Perro:Class
||

Tiene el mismo sentido que intentar comer el concepto de un sándwich

Por otro lado, si queremos oír el sonido de un perro sin estar emocionalmente atados, podemos crear (instanciar) un perro efímero, temporal y obtener un pequeño sonido antes de que desaparezca.

|| ruby> (Perro.new).ladra # o también, Perro.new.ladra
guau guau
nil
||

Pero un momento, "¿qué es todo esto de que a continuación el pobre tipo desaparece?". Pues es verdad, si no nos preocupamos de darle un nombre (como hicimos con rufi) el recolector de basura automático de Ruby decide que se trata de un perro perdido, no deseado y sin piedad se deshace de él. Ciertamente está muy bien, porque podemos crear todos los perros que queramos.
[editar]

5 opiniones

ejemplos

deberian colocar mas ejemplos =)
D:

y los atributos de la clase que?
bien

bien
Exelente.

Excelente traduccion de: http://www.rubyist.net/~slagell/ruby/singletonmethods.html
muy recomendable.
Bueno.

Muy bueno como introduccion a el leguaje de ruby.

Tutoriales relacionados con 'Guía del usuario de Ruby'

Autor y licencia de 'Guía del usuario de Ruby'

Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.