jueves, 13 de marzo de 2014

La filosofía del Ruby* como lenguaje de programación. Segunda parte.

¿Que son los Items?
Esta pregunta es imporante interesante y muy filosofica.

Para ellos empezaremos desde cero, en Ruby todo son objects (objetos), desde strings(comillas), integers (enteros) hasta las ".class". de hecho el ser supremo de Ruby se llama Object que a su vez contiene BasicObject. la cual es la clase suprema.

¿Quieres probar? Pon cualquier palabra, numero etc... por ejemplo dentro de irb en la consola y probad lo siguiente.

irb
> String.superclass
=>Object

>Numeric.superclass
=>Object

Por último e importante para un ejemplo de abajo. 
Class.superclass
=>Module
Module.superclass
=>Object

Aquí hay un dibujo muy artístico
http://i.stack.imgur.com/XDHjA.jpg

Class, viene definida como una librariea o bliblioteca (Library) donde tengo objetos de un mismo grupo classificados. Todos absolutamente todos los objetos pertenecen a una ".class" por ejemplo los numeros enteros (Integers) pertenecen a class Fixnum y todas las .class siempre tienen la primera letra en mayúscula.

Por ejemplo, todos los animales estan dentro de "class. Animals" y cada uno de estos animales son objetos en Ruby también y cada objeto tiene diferentes atributos. por ejemplo, los perros tienen 4 patas y una cola, las gallinas tienen 2 patas un pico y una cola. Dentro de esos objetos cada uno de ellos es un ente único, pero a ese ente no le llamamos así, a ese ente en Ruby se le llama Instance (o Instancia).

Ejemplos faciles y rapidos de Steve:
Tu, estas en la clase ser vivo, dentro de la clase ser vivo estas como subclase ser humano, los seres humanos tenemos atributos como, capacidad cognitiva, 2 brazos 2 piernas etc... y tu eres un unica Instancia vendria a ser (un ser o un ente si generalizamos aún más)

Así que si te ha quedado claro que es una instancia ¿Como la escribirias en una sola frase?

Trata de hacerlo y una vez lo hayas hecho mira se parece a esta definición.

Todos los objeto que estan dentro de una  determinada .class, tienen determinados atributos que les hace pertenecer a una determinada categoria, y cada uno de estos objetos son únicos y se les llama Instancia.

¿Cual de estos ejemplos seria una instancia y cual no?

1. x = Box
2. x = box
3. x = ''Box"
4. x = 123
5. x = a
6. x= Box.new

1. Box será un archivo .class ya que está en mayusculas, no será una instancia.
2. box es una instancia
3. "Box"  aunque esté en mayusculas es una instancia ya que está dentro de unas dobles comillas (string).
4. 123 es una isntancia dentro de class Fixnum 
5.  Tambíen a es una Instancia, ya que está en minuculas
6.  Box.new es una instancia! es una nueva .class creada  desde la .class Box. Cuando creamos una class a partir de una class creamos un objeto como una instancia dentro de la clase Module! Si creamos algo seräa una isntancia aunque sea creada a partir de una .class .
Es como si de un catalgo de la biblioteca de cajas crearamos otra biblioteca de catalgo de cajas ese catalogo es un modulo en si z por tanto un item o como ya conocemos una Instancia.

Consejos hacer los ejercicios relacinados con esto desde este link;
http://www.tutorialspoint.com/ruby/ruby_object_oriented.htm





No hay comentarios:

Publicar un comentario