Ruby 101 session 4

Post on 01-Jul-2015

269 views 1 download

Transcript of Ruby 101 session 4

ORIENTACION A OBJETOS I IMÚLTIPLES ARCHIVOS

Ruby 101

Sergio Castillo Yrizales@scyrizales

Agenda

Orientación a Objetos

Múltiples archivos

Orientación a Objetos II

Herencia

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

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

Accesando al padre

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

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

Definiendo Propiedades

Otra forma es usando los metodos especiales attr_reader y attr_writer

Definiendo Propiedades

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

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

Ambito: privado

Y si queremos volver a hacerlo públicos escribimos public

Reto: Hagamos taxonomia

Definiremos una clase mamiferoDefiniremos 2 clases que hereden de

mamiferoUsemos propiedades y metodos con ambitos

públicos o privados

Múltiples Archivos

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

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)

Reto: Organizemos Código

Separemos el ejercicio anterior en diferentes archivos

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.

Todos los archivos en:

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

Muchas gracias