Ruby 101 session 4

19
ORIENTACION A OBJETOS II MÚLTIPLES ARCHIVOS Ruby 101 Sergio Castillo Yrizales @scyrizales

Transcript of Ruby 101 session 4

Page 1: Ruby 101 session 4

ORIENTACION A OBJETOS I IMÚLTIPLES ARCHIVOS

Ruby 101

Sergio Castillo Yrizales@scyrizales

Page 2: Ruby 101 session 4

Agenda

Orientación a Objetos

Múltiples archivos

Page 3: Ruby 101 session 4

Orientación a Objetos II

Page 4: Ruby 101 session 4

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 5: Ruby 101 session 4

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 6: Ruby 101 session 4

Accesando al padre

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

Page 7: Ruby 101 session 4

Definiendo Propiedades

No se puede accesar a una variable en una clase de ruby

Hay que generar un método de escritura y otro de lectura para cada variable

Page 8: Ruby 101 session 4

Definiendo Propiedades

Otra forma es usando los metodos especiales attr_reader y attr_writer

Page 9: Ruby 101 session 4

Definiendo Propiedades

Y si es de entrada y salida attr_accessor es nuestro nuevo amigo

Page 10: Ruby 101 session 4

Ambito: privado

Por defecto, todos los métodos son públicosAl escribir private dentro de una clase hace

que todos los metodos que vengan luego de esta sentencia sean privados

Page 11: Ruby 101 session 4

Ambito: privado

Y si queremos volver a hacerlo públicos escribimos public

Page 12: Ruby 101 session 4

Reto: Hagamos taxonomia

Definiremos una clase mamiferoDefiniremos 2 clases que hereden de

mamiferoUsemos propiedades y metodos con ambitos

públicos o privados

Page 13: Ruby 101 session 4

Múltiples Archivos

Page 14: Ruby 101 session 4

Trabajando en el mundo real

En el mundo real, no puedes poner todo tu código en el mismo archivo

No se ve bien y tiende a confundir a los desarrolladores

Lo que podemos hacer es separar el código en diferentes archivos

Page 15: Ruby 101 session 4

Llamando archivos

Para llamar un archivo que se encuentra en el mismo directorio usamos require_relative

Y para buscar a un nivel superior solo usamos require (buscar gemas)

Page 16: Ruby 101 session 4

Reto: Organizemos Código

Separemos el ejercicio anterior en diferentes archivos

Page 17: Ruby 101 session 4

Reto: Chatham Challenge 4

A financial portfolio consists of an allocation of stocks, bonds, and cash. Allocate the portfolio and based off of financial data, recalculate the portfolio each year. For example, your portfolio may start with $1,000,000, and you may distribute your allocations with 65% stock, 20% bonds, and the remainder in cash. At the end of a set number of years where rates go up and down, publish the portfolio balance. During this exercise, you will probably have to define methods, classes, and maybe even hashes.

Page 18: Ruby 101 session 4

Todos los archivos en:

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

Page 19: Ruby 101 session 4

Muchas gracias