You are on page 1of 29

Introducción a la Programación

Orientada a Objetos

Tecnología de la Programación I
Ing. Zoraida Vidal Melgarejo, Mg.

1
Conceptos de Orientación a Objetos

• La orientación a objetos es una manera natural de pensar acerca


del mundo real y de escribir programas de cómputo.

• En cualquier parte del mundo real puede ver objetos: gente,


animales, plantas, autos, aviones, edificios, computadoras, etc.

• Los humanos pensamos en términos de objetos. Poseemos la


habilidad de la abstracción, que nos permite ver imágenes
digitales de personas, aviones, árboles y montañas como objetos,
en vez de verlos como puntos de colores individuales.

2
Conceptos de Orientación a Objetos

• Aún cuando son diferentes tipos de objetos, todos ellos tienen


atributos como tamaño, forma, color y peso; y todos exhiben
comportamientos. Por ejemplo: una pelota rueda, rebota y se infla
y desinfla; un bebé llora, duerme, gatea, camina y parpadea.

• Los humanos aprenden acerca de los objetos estudiando sus


atributos y observando sus comportamientos. Distintos objetos
pueden tener atributos similares y pueden exhibir
comportamientos similares.

3
Análisis y Diseño Orientado a Objetos

• ¿Qué haría usted si se le pidiera crear un sistema de software para


controlar las máquinas de cajero automático para un importante
banco?

• Para crear las mejores soluciones, debe seguir un proceso


detallado para obtener un análisis de los requerimientos de su
proyecto, y para desarrollar un diseño que cumpla con esos
requerimientos. Si este proceso se hace desde un punto de vista
orientada a objetos, lo llamamos un proceso de análisis y diseño
orientado a objetos (A/DOO).

4
Análisis y Diseño Orientado a Objetos

• A/DOO es el término genérico para el proceso de analizar un


problema y desarrollar un método para resolverlo.

• Aunque existen muchos procesos de A/DOO distintos, existe un


lenguaje gráfico para comunicar los resultados de cualquier
proceso A/DOO que se denomina Lenguaje Unificado de
Modelado (UML), el cual se desarrolló a mediados de la década
de los noventa, bajo la dirección inicial de tres metodologistas de
software: Grady Booch, James Rumbaugh e Ivar Jacobson.

5
Análisis y Diseño Orientado a Objetos

• El Lenguaje Unificado de Modelado es ahora el esquema de


representación gráfica más utilizado para modelar sistemas
orientados a objetos.

• Una de las características más atractiva de UML es su


flexibilidad. UML es extensible e independiente de los diversos
procesos de A/DOO. Los modeladores de UML tienen la libertad
de diseñar sistemas utilizando varios procesos, pero todos los
desarrolladores pueden ahora expresar esos diseños con un
conjunto de notaciones estándar.

6
Programación Orientada a Objetos

¿Cómo nos ayuda la Tecnología de Objetos?

9 La tecnología de objetos es parte de la evolución en TI

9 Se hacen aplicaciones más rápido

9 Permite la reusabilidad del código

9 Se tiene mayor base para la calidad del software

9 Es la base para arquitecturas distribuidas (CORBA y RMI) y


WEB
7
Programación Orientada a Objetos

¿Cómo nos ayuda la Tecnología de Objetos?

¾Objetos
9 Permiten hacer sistemas más adaptables
9 Reducen el costo del mantenimiento y la modificación

¾Resultados
9 Mejor mantenimiento
9 Retroalimentación con los usuarios
9 Entregas más rápidas a los usuarios mediante procesos iterativos e
incrementales

8
Programación Orientada a Objetos

¿Cómo nos ayuda la Tecnología de Objetos?

¾Los Objetos son el puente entre


9Usuarios finales (expertos en el dominio) y programadores
9Análisis y Diseño

¾Las Clases
9Existen en el análisis, el diseño y la implementación
9Se relacionan directamente con los conceptos del dominio
9Proveen un significado natural e intuitivo de las separaciones

9
Programación Orientada a Objetos
¿Cómo nos ayuda la Tecnología de Objetos?

9 Los requerimientos y la arquitectura pueden ser capturadas en


una forma razonable y repetible.
9 Los objetos modelan los conceptos del mundo real y su
comportamiento.
9 Son fáciles de entender.
9 Interfaces bien definidas implementan calidad, funcionalidad y
reusabilidad.
9 Los cambios en los requerimientos son fáciles de llevar a cabo
con costos de mantenimiento menores.

10
Programación Orientada a Objetos
¿Cómo nos ayuda la Tecnología de Objetos?

Re-engeniería Científico Sistemas


Internet y Empotrados
eBusiness

Tecnología
Arquitecturas Telecomunicaciones.
de
Distribuidas
Objetos
Cliente/Servidor

Financiero OLTP
Comercial

11
Programación Orientada a Objetos
¿Cómo nos ayuda la Tecnología de Objetos?
Diseño
Análisis Implementación

Modelo OO

Análisis de Análisis Diseño Integración y


Implementación
Requerimientos Pruebas

CLASES

12
Programación Orientada a Objetos
¿Cómo nos ayuda la Tecnología de Objetos?

9 UML es una notación gráfica y textual


9 Rica, expresiva y extensible
9 UML no es una metodología
9 UML tiene toda la semántica y la notación necesarias para
especificar los artefactos requeridos para la construcción de
software orientado a objetos
9 UML no especifica un ciclo de desarrollo

13
Programación Orientada a Objetos

Clase Atributo
Operación

Tecnología
Objeto de Mensaje
Objetos

Asociación Herencia

POO = Abstracción Herencia Polimorfismo


14
Programación Orientada a Objetos

¿Qué es un Objeto?
9 Definición Filosófica: una entidad que uno puede reconocer.

9 En Tecnología de Objetos: una abstracción de un objeto del


mundo real, ya sea físico o conceptual.

9 En el dominio: una entidad relevante para el dominio de la


aplicación.

9 En término de software: una estructura de datos con operaciones


asociadas.
15
Programación Orientada a Objetos
¿Qué son las clases y los objetos?
– Una Clase:
• Modelos, abstracción de objetos
• Define los atributos y el comportamiento de los objetos
• Es la platilla que define los objetos

– Un Objeto:
• Es una copia del molde de una clase
• Es una instancia simple de alguna clase
• Retiene la estructura y el comportamiento de alguna clase
16
Programación Orientada a Objetos
Los atributos del objeto mantienen su estado actual
– Los objetos almacenan su estado actual.
– Cada pieza almacenada (variable) se conoce como atributo.
• El valor de los atributos denota el estado actual del objeto.

INK
Objeto: Atributo:
Mi lapicero azul Tinta disponible

Objeto: Atributo:
Cajero Automático BCP Dinero disponible 17
Programación Orientada a Objetos
Los objetos tienen un comportamiento
– Un objeto existe para ofrecer cierto comportamiento
(funcionalidad) al sistema.
– Cada comportamiento distinto es llamado operación

Objeto:
Operación:
Mi lapicero azul
Escribir

Objeto: Operación:
Cajero automático BCP Retirar
18
Programación Orientada a Objetos
Los objetos son modelados como Abstracciones
• Un objeto de Java es modelado como una representación abstracta
de un objeto del mundo real.
• El modelo tiene solo los atributos y operaciones que son
relevantes al contexto del problema.
Contexto: Catálogo de productos
Atributos y operaciones del mundo real que serían deseables en el modelo:
• Atributos: modelo, fabricante, precio
• Operaciones: cambiar precio
Atributos y operaciones del mundo real que no serían deseables en el modelo:
• Atributos: color de la tinta
• Operaciones: rellenar, cambiar color, punto, escribir

19
Programación Orientada a Objetos
Los objetos pueden ser compuestos
– Los objetos pueden estar compuestos de otros objetos.
– Los objetos pueden ser parte de otros objetos.
– Esta relación entre objetos se conoce como agregación.

Un Cajero puede tener


teclado, lector de tarjetas,
etc. Todas estas partes El Banco puede tener
El Banco puede pueden ser también Cajeros que pueden
ser un objeto objetos. ser objetos

20
Programación Orientada a Objetos
Persona
Clase Objeto

getNombre

setEdad getEdad()
nombre getEdad
Mensaje
direccion
edad

Cliente
getDireccion setDireccion o
Invocador

21
Programación Orientada a Objetos
Los objetos colaboran entre si
• Los objetos trabajan juntos para cumplir una función y forman la
base de una aplicación.
– Todos los métodos son definidos dentro de una clase.
– Todos los objetos son creados desde alguna clase y contiene
todos los atributos y métodos de la clase.
– Los objetos se asocian con otros para colaborar en una tarea
común.
– Los objetos asociados se comunican a través del envío de
mensajes (llamadas a métodos)

22
Programación Orientada a Objetos
Los objetos interactúan mediante mensajes
• El objeto invocador debe estar asociado o enlazado con el que
recibe la llamada.
• El objeto que envía el mensaje pide al receptor que realice alguna
operación que es especificada en el mensaje.
• Similar a la llamada a procedimientos o funciones:
– El que envía llama algún método del receptor.
– El receptor ejecuta la tarea especificada.
• La llamada a métodos es siempre en el contexto de algún objeto:
– miLapiz.escribe( ): Programación orientada a objetos.
– escribe (miLapiz): Programación estructurada tradicional.

23
Programación Orientada a Objetos
¿Qué es una clase?

• Una clase es una plantilla para crear objetos.


• La definición de una clase especifica las operaciones y los
atributos para todas las instancias de la clase (objetos).

Cuando se crea el objeto “mi lapicero azul”, no hay que especificar sus
operaciones o atributo. Simplemente se cual es la clase del objeto que se
crea.

24
Programación Orientada a Objetos
Clases vs Objetos
• Las clases son la definición estática y estándar que usamos para
comprender todos los objetos de una clase (tipo).

• Los objetos los entidades (ejemplares) dinámicos que existen en


el mundo real y en nuestra simulación de este.

• Advertencia: Los especialistas ya acostumbrados a la orientación


a objetos usan las palabras clase y objeto de forma indistinta; se
debe entender el contexto para diferenciar entre estos dos
significados.

25
Programación Orientada a Objetos
¿Qué es el encapsulamiento?
• El encapsulamiento consiste en ocultad la estructura y las
operaciones de un objeto detrás de su interface.
• El cajero automático es un objeto que le da dinero a sus clientes:
– El cajero oculta a sus clientes las operaciones internas que
realiza.
– La interface (medio de operación del cajero) es ofrecida por las
funciones del teclado, la pantalla, y otros dispositivos.
– Si se pidiera violar el encapsulamiento del cajero se pudiera
robar al banco.
Violar el encapsulamiento en orientación a objetos es imposible.
26
Programación Orientada a Objetos
¿Qué es la Herencia?
• Puede ser la concordancia entre varias clases.
• Define las propiedades comunes en una clase superclase.
Las subclases usan la herencia para añadir atributos o métodos.
Las subclases usan la herencia para cambiar métodos.

Superclase
Clase base
Clase padre

Cuenta Subclase
Clase derivada
Clase hija
Cuenta corriente
Cuenta de ahorros
27
Programación Orientada a Objetos
Uso de la relación “es-un-tipo-de”

• Un objeto de la subclase “es un tipo Lapicero


de” objetos de la superclase. Cuenta

• La subclase tiene todos los atributos


y comportamientos de la superclase.

Lápiz
Cuenta de Ahorros

28
Programación Orientada a Objetos
¿Qué es el Polimorfismo?
• El polimorfismo se refiere a:
• Varias formas de hacer la misma operación
• La habilidad de solicitar una operación con el mismo significado
a diferentes objetos, sabiendo que cada objeto implementa la
operación a su forma.
• Los principios de la herencia y de la substitución de objetos

Cargan pasajeros 29

You might also like