You are on page 1of 44

Fundamentos de

Orientación a Objetos
Referencias
● Meyer, Bertran., “Construcción de Software
Orientado a Objetos”, Prentice Hall, 1997.
● Booch, Grady.,”Analisis y Diseño orientado a Objetos
con aplicaciones”.
● Fowler, Martin., “UML Distille – Applying the
Standard Object Modeling Language”, Addison-
Wesley, 1997
● Budd, Timothy A. An Introduction to Object Oriented
Programming (3rd Ed), Addison-Wesley, 2002.
● Peña, Ricardo.,”Diseño de Programas, formalismo
y abstracciones”, Prentice Hall, 1998
Referencias ( cont...)
● Larman, G., “Applying UML and
Patterns: An Introduction to Object-
Oriented Analysis and Design”, prentice-
Hall, 1998.
● Booch, Grady., “El Lenguaje Unificado de
Modelado UML”, Addison-Wesley, 1998
● Aguilar, Joyanes., “Programación
Orientada a Objetos”, Mc. Graw Hill
● Rumbaugh, James., “Modelaje y Diseño
Orientado a Objetos”, Prentice Hall, 1990
Agenda
Introducción a la Programación
Orientada por Objetos
Conceptos básicos
Abstracción
Herencia
Relaciones entre clases
Polimorfismo
Introducción

Símula (1961...) C++ (1983...)


C#(2000...)
Símula (1967...) Eiffel (1985...) Ruby (1991...)
SmallTalk (1972-...) Self (1986...) Java 1 (1995...)
Modula 3 (1986...)
ADA(1979-...)

60-70's 80's 90's


Introducción
Símula (1961...) C++ (1983...)
C#(2000...)
Símula (1967...) Eiffel (1985...) Ruby (1991...)
SmallTalk (1972-...) Self (1986...) Java 1 (1995...)
Modula 3 (1986...)
ADA(1979-...)

60-70's 80's 90's

Booch (1991...)
RUP
OMT (1991...) Objectory OBA,MOSES, (1999...)
(1992...) FUSION
(1994...)
Conceptos básicos
OO provee objetos como el principal
medio para abstraer y estructurar un
sistema.
Un objeto puede modelar entidades
del mundo real, puede capturar
abstracciones de fenómenos
complejos, puede representar
artefactos de software (pilas, gráficos,
…).
Conceptos básicos
El contexto del problema se ve como objetos
que interactúan entre ellos
Conceptos
básicos
Ejemplo Enviar Flores [4]
 Suponga que Juan desea llevarle flores a
una amiga en otra ciudad María
 Como Juan no puede llevarlas

personalmente, le encarga a su florista


preferida (Rosa) el envío
 María recibe sus flores
B4
Conceptos
básicos
Ejemplo Enviar Flores [4]
Juan le solicita a Rosa un servicio
Rosa sabe cómo prestarle el servicio

a Juan
Juan sabe que Rosa presta el

servicio que el necesita


Rosa es responsable de prestarle el

servicio adecuadamente a Juan


Juan desconoce qué le implica a Rosa

prestarle el servicio
Conceptos
básicos
Ejemplo Enviar Flores [4]
María Mensajero

Arreglista Productor

Juan Rosa Recolector

Florista Local
Conceptos
básicos
En programación orientada por
objetos un programa es una
comunidad de agentes (objetos)
que interactuan entre ellos.
Cada objeto tiene un rol en la
solución del problema
Cada objeto provee un conjunto
de servicios (o métodos)
Los servicios de un objeto son
usados por otros objetos.
Conceptos
básicos
La forma en que los objetos se
comunican entre ellos es a través
de mensajes:
Un mensaje encapsula la petición de
un servicio
El receptor del mensaje presta el

servicio y devuelve una respuesta al


que solicitó el servicio
Conceptos básicos
Un objeto ventana gráfica
Ventana ejemplo

La ventana se sabe: Qué sabe hacer la ventana?

cerrar Cuáles servicios ofrece?

abrir

cambiar de tamaño 

pintar Cómo se le solicitan 

mover los servicios?
Además, sabe: dónde está,
si está visible o no ...
Conceptos
básicos
Ventana ejemplo

Objetos figuras geométricas:

un triángulo

un rectángulo

un círculo

Las figuras geométricas se 
saben:

Pintar Qué saben hacer las 

agrandar .. figuras geométricas 
Además, saben: dónde están, gráficas?
si están visibles o no ...
Cómo se le solicitan 
los servicios?
Conceptos
básicos
Ventana ejemplo

La ventana tiene la  Las figuras geométricas 
responsabilidad de  tienen la responsabilidad 
solicitar a las figuras  de saberse pintar y de 
geométricas que se  hacerlo cuando se lo 
pinten soliciten

La ventana tiene que saber cómo hacer la solicitud.
La figura geométrica tuvo que haber hecho público cómo 
usar sus servicios
Conceptos básicos

CambiarTama
ño(50%+)
Ventana Cliente
Ok

Interfaz: conjunto de servicios p
úblicos que presta

La comunicación se hace a través del envío 
de mensajes
Conceptos
básicos
Modelar consiste en identificar
(abstraer) qué objetos hay en el
mundo del problema, cómo son,
cómo se comportan y cómo se
relacionan.
Conceptos
básicos
Objeto
 Es una abstracción de un elemento
(concepto) del Contexto del Problema
 Ejemplos:
 Estudiante
 Fecha
 Automóvil
 Libro
 Vuelo
Conceptos básicos
El comportamiento de los objetos
puede ser descrito por una
caracterización abstracta de su
interfaz. Por ejemplo:
Conceptos básicos
La caracterización del
comportamiento es suficiente para
diseñar el sistema. El
comportamiento real del objeto
puede ser implementado y refinado
más tarde de acuerdo con las
necesidades.
Conceptos básicos
Un objeto empaqueta datos (una
representación concreta) y procedimientos
que operan sobre los datos.
Conceptos básicos

Nombre

Datos/Atributos/Campos

Métodos/Servicios/Interfaz
Conceptos básicos
El envío de mensajes es la única forma
para que un objeto realice una operación.
Las operaciones son la única forma para
cambiar el estado de los datos.
Cuando esto se cumple, se dice que el
estado interno del objeto (el valor de sus
datos) está encapsulado; éste no puede
ser manipulado directamente desde el
exterior y su representación concreta es
invisible.
Conceptos básicos
Abstracción:
Mecanismo de la mente humana
fundamental para la comprensión de
fenómenos o situaciones que involucren
una gran cantidad de detalles.
En biología los seres vivos se clasifican en
especies, géneros, clases, órdenes,
etc...
Conceptos básicos
Abstracción ( cont...)
Proceso mental que tiene dos
aspectos complementarios
 El aspecto de destacar los detalles
relevantes del objeto de estudio
 El aspecto de ignorar los detalles
irrelevantes del objeto.
Conceptos básicos
Tipo Abstracto de Datos (TAD)
“Un tipo abstracto de datos es una
colección de valores y de
operaciones que se definen
mediante una especificación que
es independiente de cualquier
representacion”
Conceptos básicos
Abstracción y encapsulamiento:
 La abstracción se centra en el comportamiento
observable de un objeto, el encapsulamiento se
centra en la implementación que da lugar a ese
comportamiento.
”encapsulamiento es el proceso de almacenar en
un mismo lugar los elementos de una
abstracción que constituyen su estructura y su
comportamiento; sirve para separar la interfaz
contractual de una abstracción de su
implantación." [Booch96]
Conceptos básicos
Clase
 Describe un conjunto de objetos del
Contexto del Problema, que tienen las
mismas características y el mismo
comportamiento
Conceptos básicos
La noción de Clase viene de clasificación:
agrupar (en un conjunto) objetos (elementos)
que se comportan de la misma manera (con
respecto a la interfaz que describe el
comportamiento).
Conceptos básicos
Metáfora
Conceptos básicos
Agregación/Composición
 Permite abstraer relaciones de tipo ...tiene...

y ... está compuesto de...


Conceptos básicos
Asociaciones
 Permite abstraer relaciones entre

objetos diferentes a la composición


Herencia
Los objetos se organizan en jerarquías

Vertebrado

Mamifero ...

Canino Felino

Doméstico Salvaje
Herencia
La herencia permite modelar relaciones
del tipo ...es... y clasificaciones:
 Un mamífero es un vertebrado
 Un monitor es un estudiante

Vertebrado Superclase
(Tipo)

Mamifero Subclase
(Subtipo)
Herencia
Relación de subtipaje (herencia):

 si B es subtipo de A entonces cualquier


objeto de tipo B puede ser usado en
cualquier parte donde un objeto de
tipo A puede ser usado.
Herencia
Herencia Múltiple:

EstudiantePregrado Monitor

MonitorPregrado
Herencia

ScrollBar

Window
Herencia

ScrollBar

Window
Herencia
La regla de oro de la herencia: ..es un... :
Cuando tenga:

Forme la frase ``A es A


un B''. Si es correcto,
entonces A puede ser subclase de B
Polimorfismo
Es la posibilidad de definir de forma
distinta un método,dependiendo del
objeto.

MiTriangulo.pintar() MiCuadrado.pintar() MiCirculo.pintar()


Polimorfismo

for (int i = 1; arreglo.length(); i++) {

arreglo[i].pintar();

}
Polimorfismo
El polimorfismo es posible gracias a
la herencia:
Figura
 Pintar()

Cuadrado Triangulo Circulo


Resumen Principios
Todo es un objeto
Los objetos realizan operaciones (computan) solicitando
servicios entre ellos a través del paso de mensajes
Todo objeto tiene su propia memoria, la cual consiste de
otros objetos
Todo objeto es una instancia de una clase. Una clase
agrupa objetos similares.
En la clase se describe el comportamiento de los objetos.
Las clases están organizadas en una jerarquía con una
única raíz, llamada la jerarquía de herencia.

You might also like