25
HASHES, SYMBOLS Y ORIENTACION A OBJETOS I Ruby 101 Sergio Castillo Yrizales @scyrizales

Ruby 101 session 3

Embed Size (px)

Citation preview

Page 1: Ruby 101 session 3

HASHES, SYMBOLS Y ORIENTACION A OBJETOS I

Ruby 101

Sergio Castillo Yrizales@scyrizales

Page 2: Ruby 101 session 3

Agenda

Hashes y Simbolos

Orientacion a Objetos

Page 3: Ruby 101 session 3

Hashes y Simbolos

Page 4: Ruby 101 session 3

Extra: case when else end

Es una estructura de control especial

Te permite estructurar diversos casos de equivalencias

Puede usarse sin variable inicial:

Page 5: Ruby 101 session 3

Hashes. Valor por defecto

El valor que se usa en el constructor será el valor por defecto

Page 6: Ruby 101 session 3

Símbolos (Symbol)

Es un tipo de nombre

NO ES UNA CADENA

Las cadenas iguales son objetos diferentes

Los símbolos iguales son el mismo objeto

Page 7: Ruby 101 session 3

Para que usamos Symbols?

Para los keys de los hashesAhorran memoria

Page 8: Ruby 101 session 3

Convirtiendo strings en symbols

Mediante el método to_sym

Para regresar, se hace mediante el método to_s

Page 9: Ruby 101 session 3

Otra forma de escribir Hashes

Antes era asi (sin Symbols)

Ahora es asi (con Symbols)

Page 10: Ruby 101 session 3

Buscando en Hashes

Buscando por key Buscando por value

Page 11: Ruby 101 session 3

Recorriendo Hashes por…

Las keys Los values

Page 12: Ruby 101 session 3

Eliminando una llave

Usamos el método delete

Page 13: Ruby 101 session 3

Reto: Rating para Peliculas

Escribiremos un programa que se haga cargo de nuestros ratings

Copien la estructura en nuevo archivo y rellenen en donde haga falta

Page 14: Ruby 101 session 3

Orientación a Objetos

Page 15: Ruby 101 session 3

Por qué Objetos

Ruby es un lenguaje OO

Todo en Ruby es un objeto

Y todo el tiempo hemos usado métodos

Page 16: Ruby 101 session 3

Class

Es el mapa para generar nuevos objetos

Page 17: Ruby 101 session 3

Constructor

Es el método que inicia todo en RubySe llama al usar el .newSe define mediante initialize

Page 18: Ruby 101 session 3

Variables

Variables de Instancia: @Variables de Clase: @@Variables Globales: $

Page 19: Ruby 101 session 3

Métodos

Constructor

De instancia

De clase

Page 20: Ruby 101 session 3

Herencia

Una clase puede heredar de otraSe usa para definir la relación “es un”Adulto es un HumanoEn Ruby se usa el operador <

Page 21: Ruby 101 session 3

Sobreescribiendo

Un método de la clase padre puede ser reescrito por la clase hija

En general todos los otros métodos se pasan directamente a la clase hija

Page 22: Ruby 101 session 3

Accesando al padre

Una vez que hemos sobrescrito un método, se puede accesar a este mediante el uso del super

Page 23: Ruby 101 session 3

Reto: Computadora virtual

Escribamos un clase que represente a una computadora

Cada computadora tiene un usuario y un password

Debe guardar un Hash con las computadoras creadas donde el key sea el usuario y el value sea el pass.

Debe tener un metodo de clase que retorne este hash

Debe tener 2 metodos, uno para crear archivos y el otro que sea el constructor.

Page 24: Ruby 101 session 3

Más Ejemplos

Los ejercicios de esta clase se encuentran en:

https://github.com/scyrizales/Ruby101/tree/master/TerceraClase

Contacto a @scyrizales (twitter, skype)

Page 25: Ruby 101 session 3

Muchas gracias