SlideShare une entreprise Scribd logo
1  sur  19
O R I E N T A C I O N A O B J E T O S I I
M Ú L T I P L E S A R C H I V O S
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 otra
 Se usa para definir la relación “es un”
 Adulto es un Humano
 En 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úblicos
 Al 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 mamifero
 Definiremos 2 clases que hereden de mamifero
 Usemos 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
Ruby 101 session 4

Contenu connexe

Similaire à Ruby 101 session 4 (20)

Poo
PooPoo
Poo
 
Java Basico
Java BasicoJava Basico
Java Basico
 
POO con PHP
POO con PHPPOO con PHP
POO con PHP
 
Poo
PooPoo
Poo
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Analisis de la PPO
Analisis de la PPOAnalisis de la PPO
Analisis de la PPO
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Php orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald NinaPhp orientado a objetos, Ronald Nina
Php orientado a objetos, Ronald Nina
 
Argentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdfArgentina Programa Apendix parte 3.pdf
Argentina Programa Apendix parte 3.pdf
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Conceptos POO PV
Conceptos POO PVConceptos POO PV
Conceptos POO PV
 
Programación Orientada a Objetos parte 2
Programación Orientada a Objetos  parte 2Programación Orientada a Objetos  parte 2
Programación Orientada a Objetos parte 2
 
Clase 2
Clase 2 Clase 2
Clase 2
 
Semana 6 Módulos Clases y Objetos
Semana 6   Módulos Clases y ObjetosSemana 6   Módulos Clases y Objetos
Semana 6 Módulos Clases y Objetos
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 

Plus de Sergio Castillo Yrizales

Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothSergio Castillo Yrizales
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesSergio Castillo Yrizales
 

Plus de Sergio Castillo Yrizales (20)

Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Lambda at the edge
Lambda at the edgeLambda at the edge
Lambda at the edge
 
Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetooth
 
Pushing html5 beyond boundaries
Pushing html5 beyond boundariesPushing html5 beyond boundaries
Pushing html5 beyond boundaries
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Web apps con angular y material design
Web apps con angular y material designWeb apps con angular y material design
Web apps con angular y material design
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Advanced angular 2
Advanced angular 2Advanced angular 2
Advanced angular 2
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Javascript + Angular Sesion 6
Javascript + Angular Sesion 6Javascript + Angular Sesion 6
Javascript + Angular Sesion 6
 
Javascript + Angular Sesion 5
Javascript + Angular Sesion 5Javascript + Angular Sesion 5
Javascript + Angular Sesion 5
 
Javascript + Angular Sesion 4
Javascript + Angular Sesion 4Javascript + Angular Sesion 4
Javascript + Angular Sesion 4
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
Javascript + Angular Sesion 2
Javascript + Angular Sesion 2Javascript + Angular Sesion 2
Javascript + Angular Sesion 2
 
Javascript + Angular Sesion 1
Javascript + Angular Sesion 1Javascript + Angular Sesion 1
Javascript + Angular Sesion 1
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 

Ruby 101 session 4

  • 1. O R I E N T A C I O N A O B J E T O S I I M Ú L T I P L E S A R C H I V O S Ruby 101 Sergio Castillo Yrizales @scyrizales
  • 2. Agenda  Orientación a Objetos  Múltiples archivos
  • 4. Herencia  Una clase puede heredar de otra  Se usa para definir la relación “es un”  Adulto es un Humano  En Ruby se usa el operador <
  • 5. 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
  • 6. Accesando al padre  Una vez que hemos sobrescrito un método, se puede accesar a este mediante el uso del super
  • 7. 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
  • 8. Definiendo Propiedades  Otra forma es usando los metodos especiales attr_reader y attr_writer
  • 9. Definiendo Propiedades  Y si es de entrada y salida attr_accessor es nuestro nuevo amigo
  • 10. Ambito: privado  Por defecto, todos los métodos son públicos  Al escribir private dentro de una clase hace que todos los metodos que vengan luego de esta sentencia sean privados
  • 11. Ambito: privado  Y si queremos volver a hacerlo públicos escribimos public 
  • 12. Reto: Hagamos taxonomia  Definiremos una clase mamifero  Definiremos 2 clases que hereden de mamifero  Usemos propiedades y metodos con ambitos públicos o privados
  • 14. 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
  • 15. 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)
  • 16. Reto: Organizemos Código  Separemos el ejercicio anterior en diferentes archivos
  • 17. 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.
  • 18. Todos los archivos en:  https://github.com/scyrizales/Ruby101/tree/master /CuartaClase