Professional Documents
Culture Documents
Introduccin
Programacin: Actividad compleja Crisis del Software Imponiendo orden al caos Programacin Orientada a Objetos Definicin de POO Origen de la POO
2
Para entender un nivel dado de un sistema, basta con comprender unas pocas partes (no necesariamente todas) a la vez. Descomposicin es la clave:
Descomposicin algortmica tradicional Descomposicin orientada a objetos
6
La POO es
Un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase y cuyas clases son todas miembros de una jerarqua de clases unidas mediante relaciones de herencia
Grady Booch
Origen de la POO
Ole-Johan Dahl y Kristen Nygaard, cientficos y profesores del Norwegian Computing Center son considerados los padres de la Orientacion a Objetos. Ellos introdujeron los conceptos principales de OO, y crearon los lenguajes de programacin SIMULA 1 (1961-1965) y SIMULA 67 (1965-1968) que los implementaban.
El modelo de Objetos
Objetos en el mundo real
Propiedades Mtodos
11
Lavadora
Perro
Televisin
Persona
Factura
12
Los objetos poseen caractersticas que los distinguen entre s. Los objetos tienen acciones asociadas a ellos.
13
Ejemplo: PERRO
Caractersticas:
Nombre: FIDO Raza: Chihuahua Color: Caf .etc
Acciones:
Ladrar [Guau Guau] Comer [Chomp Chomp] Dormir [Zzzzzzzz] etc
14
ESTADO
COMPORTAMIENTO
IDENTIDAD
16
Atributos
Son controlados a travs de la declaracin de variables Es importante identificar el tipo de dato Se debe seleccionar slo aquellos atributos necesarios para el modelo planteado (abstraccin)
17
Atributos
Variables
De instancia
De clase (estticas)
Abstraccin
Se refiere a quitar propiedades y mtodos de un objeto y quedarse solo con aquellos que sean necesarios (relevantes para el problema a solucionar).
FIDO : Perro Nombre: FIDO Raza: Chihuahua Color: Caf
Ladrar() Objeto Perro Real: Comer() Propiedades: Dormir() (Nombre, Raza, Color, Edad, Tamao, etc.) Abstraccin de un Perro Acciones o mtodos: (Ladrar, Comer, Dormir, Jugar, Caminar, etc.)
19
Abstraccin
La abstraccin se centra en las caractersticas esenciales de algn objeto, en relacin a la perspectiva del observador.
20
10
Abstraccin
Las clases y objetos deben estar al nivel de abstraccin adecuado: ni demasiado alto ni demasiado bajo.
21
Clases y Objetos
FIDO es UN PERRO FIDO es del TIPO PERRO FIDO es un OBJETO PERRO es la CLASE de FIDO CHESTER es OTRO PERRO CHESTER tambin es del TIPO PERRO CHESTER es otro OBJETO PERRO tambin es la clase de CHESTER
22
11
Clase
Es una descripcin de las caractersticas y acciones para un tipo de objetos. Una clase NO es un objeto. Es solo una plantilla, plano o definicin para crear objetos.
23
Clase
Contiene todas las caractersticas comunes de ese conjunto de objetos Clase = Modelo = Plantilla = Esquema = Descripcin de la anatoma de los objetos. A partir de una clase se pueden crear muchos objetos independientes con las mismas caractersticas.
24
12
Objeto
Unidad que combina datos y funciones.
Datos = Propiedades = Atributos = Caractersticas Funciones = Mtodos = Procedimientos =Acciones
Un objeto es creado a partir de una clase. Los datos y funciones estn Encapsulados. Posee un nombre nico (identificador). Un objeto es del tipo de una clase Un objeto es la instancia de una clase Un objeto es un ejemplar especfico creado con la estructura de una clase.
25
Encapsulamiento
Permite incluir en una sola entidad informacin y operaciones que controlan dicha informacin. Permite:
Componentes pblicos [Accesibles, Visibles]. Componentes privados [No accesibles, Ocultos]. Restriccin de accesos indebidos.
26
13
Encapsulamiento
27
Ejemplo: Encapsulamiento
La Televisin oculta algunos componentes y operaciones de la persona que la ve.
Los objetos encapsulan lo que hacen. Ocultan la funcionalidad interna de sus operaciones, de otros objetos y del mundo exterior.
28
14
Ejemplo Encapsulamiento
Componentes privados - Ocultos (NO Accesibles desde el exterior) Circuitos, cables
Aunque TODOS los componentes de un objeto se comuniquen entre s internamente, algunos componentes son visibles al exterior y otros permanecen ocultos por motivos de seguridad e integridad del objeto.
Componentes accesibles desde el exterior (Interfaz pblico) Botones para cambiar el canal, subir/bajar el volumen
29
15
31
Anatoma de un mensaje
Identidad del receptor Mtodo que ha de ejecutar Informacin especial (argumentos o parmetros)
Ejemplos:
miTelevision.Encender( ) miTelevision.Apagar( ) miTelevision.CambiarCanal( 45 ) miPerro.Comer(Croquetas) miEmpleado.Contratar (Juan, 3500) miFactura.Imprimir( )
32
16
Energizar_Circuitos
Mtodos Pblicos
Encender
Constructores y Destructores
Los objetos ocupan espacio en memoria; existen en el tiempo y deben crearse [instanciarse] y destruirse:
Constructor.- Operacin que crea un objeto y/o inicializa su estado. Destructor.- Operacin que libera el estado de un objeto y/o destruye el propio objeto.
34
17
Cada vez que se apaga la Television Se deben des-energizar los circuitos Se debe des-activar el cinescopio Para posteriormente apagar la imagen
35
Herencia
Aparato_Electrodomestico
Lavadora
Propiedades: (Interruptor, CableElectrico, PerillaDeCiclosDeLavado, CapacidadDeCarga) Mtodos: (Encender, Apagar, LlenarConAgua, TirarAgua)
Televisin
Propiedades: (Interruptor, CableElectrico, BotonDeCanales, BotonDeVolumen) Mtodos: (Encender, Apagar, CambiarVolumen, CambiarCanal 36 )
18
Herencia
Capacidad para utilizar caractersticas previstas en antepasados o ascendientes. Permite construir nuevas clases a partir de otras ya existentes, permitiendo que stas les transmitan sus propiedades. Objetivo: Reutilizacin de cdigo.
37
Caracterstica A Caracterstica A Caracterstica B Caracterstica B Caracterstica Y Caracterstica X Caracterstica Z Clases derivadas = Clases hijas = Subclases Caracterstica W Caracterstica B Caracterstica A
38
19
Herencia
39
Tipos de Herencia
Herencia Simple.- Una clase puede tener slo un ascendiente. [Una subclase puede heredar de una nica clase]. Herencia mltiple (en malla).- Una clase puede tener ms de un ascendiente inmediato. [Heredar de ms de una clase].
40
20
Herencia simple
Ejemplo 1
Figura Crculo Rectngulo Rectngulo redondeado Tringulo
Ejemplo 2
41
Herencia mltiple
Ejemplo 1
Persona Profesor Investigador Profesor universitario
Ejemplo 2
42
21
Clase abstracta
Comida
Pavo Asado
Sopa de fideo
Pay de manzana
Ensalada Cesar
La Comida como tal, es solo un concepto abstracto que NO puede instanciarse. Existen muchos alimentos que heredan sus caractersticas y ellos SI pueden existir por s mismos. Comida es una clase Abstracta.
43
Clase abstracta
Es una clase que sirve como clase base comn, pero NO puede tener instancias. Una clase abstracta solo puede servir como clase base (solo se puede heredar de ella). Sus clases hijas SI pueden tener instancias.
44
22
Clase base
23
Sobrecarga [ Overload ]
La sobrecarga representa diferentes maneras de realizar una misma accin. En los programas se usa el mismo nombre en diferentes mtodos con diferentes firmas [nmero, orden y tipo de los parmetros]. El cdigo de programacin asociado a cada sobrecarga puede variar. Ejemplos: miEmpleado.Contratar(Juan, Ventas, 2500) miEmpleado.Contratar(Juan) miEmpleado.Contratar(Juan, 2500)
47
miPuerta.Abrir ( )
48
24
Polimorfismo
Se refiere a: 1. Es el uso de un mismo nombre para representar o significar ms de una accin.
La sobrecarga es un tipo de Polimorfismo.
2.
Que un mismo mensaje pueda producir acciones totalmente diferentes cuando se recibe por objetos diferentes del mismo tipo.
Un usuario puede enviar un mensaje genrico y dejar los detalles de la implementacin exacta para el objeto que recibe el mensaje en tiempo de ejecucin. Para este caso, se utiliza herencia y sobreescritura (Override).
49
Polimorfismo
POLI = Mltiples MORFISMO = Formas
ObjetoEnFormaDeCaja
miRefrigerador.Abrir( Puerta de Abajo ) miRefrigerador.Abrir( Puerta de Arriba , Mitad )
miRegalo.Abrir( )
miCofre.Abrir( )
50
25
Bibliografa recomendada
Fundamentos de programacin: Algoritmos, Estructuras de datos y Objetos. Luis Joyanes Aguilar Mc Graw Hill Tercera Edicin ISBN: 84-481-3664-0 Teach yourself Object Oriented programming in 21 days 2nd edition Ed. SAMS, 2002. ISBN: 0-672-32109-2 OOP demystified: A self-teaching guide Jim Keogh, Mario Gianny Ed. McGrawHill, 2004. ISBN: 0-07-225363-0 Modelado y Diseo Orientados a Objetos (Metodologa OMT) James Rumbough, Michael Blaha, et. al. Editorial Prentice Hall ISBN 0-13-24-0698-5
51
26