Conceptos Fundamentales de la Programación Orientada a...
Transcript of Conceptos Fundamentales de la Programación Orientada a...
![Page 1: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/1.jpg)
Conceptos Fundamentales de la Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación IIIgLic. Gladys Chuquimia
[email protected]@gmail.com
16/08/2010 1
![Page 2: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/2.jpg)
Programación Orientada a Objetos
“La POO es un método de implementación l l ien el que los programas se organizan como
colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clasesinstancia de alguna clase, y cuyas clases son todas miembro de una jerarquía de clases unidas mediante relaciones declases unidas mediante relaciones de herencia” – Grady Booch
16/08/2010 2
![Page 3: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/3.jpg)
Identificación de los Objetos según Shlaer, Mellor y Coad/Yourdon
Cosas Tangibles – avión, libroRoles o papeles – gerente cliente empleadoRoles o papeles gerente, cliente, empleadoOrganizaciones – Equipo, empresa, divisiónIncidentes – (Sucesos, Eventos) vuelo, accidenteInteracciones (Transacción Contratos)Interacciones – (Transacción, Contratos) Compras, Vendedor, Contrato LaboralEspecificaciones – Inventarios, ProformasLugares – Sala de Espera Parqueo Oficina16/08/2010 3
Lugares Sala de Espera, Parqueo, Oficina
![Page 4: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/4.jpg)
¿Cómo se encuentran los objetos?
16/08/2010 4
“Los objetos están ahí para usarlos”
![Page 5: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/5.jpg)
Los objetos similares se agrupan en clases
16/08/2010 5
![Page 6: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/6.jpg)
ClasesClases
Son una descripción de un conjunto de objetos.Consta de Métodos y AtributosConsta de Métodos y Atributos.
Es un TDA definido que determina las estructuras de datosy operaciones asociadas con ese tipo.
En OO, una clase no solo tiene el objetivo de categorizarsino también el de servir como plantilla para crear objetossino también el de servir como plantilla para crear objetos.
16/08/2010 6
![Page 7: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/7.jpg)
Miembros Dato - atributos
Características especiales que distinguen a un objeto.
16/08/2010 7
![Page 8: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/8.jpg)
Funciones Miembro - Operaciones
Describen el comportamiento asociado a un objetoobjeto.Representan las acciones que pueden
li l bj b bjrealizarse con el objeto ó sobre un objeto.Cada método tiene un nombre y un cuerpo y pque realiza la acción o comportamiento asociado con el nombre del método.
16/08/2010 8
![Page 9: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/9.jpg)
Paso inicial en la definición del objeto coche
CocheRepresentación Simplificada
CocheTiene las características:
•Color
Clase:Clase:
color: Cadenamodelo: Int
CocheDDAATT
•Color •Modelo•Marca
marca: Cadenaplaca: Cadena
TTOOSS
Funciones que puede realizar:
•Placa
Ir()Parar()
SS
M
realizar:•Ir •Parar
16/08/2010 9
Parar()Girar_a_la_D()Girar_a_la_I()
MET
•Girar a la derecha •Girar a la izquierda
![Page 10: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/10.jpg)
Hablemos de ObjetosHablemos de Objetos
Que es un objeto ?
Un objeto es una instancia de una clase (unacategoría). Un objeto tiene una estructura.g ) jTiene atributos (propiedades - datos) yfunciones que operan sobre estos datos( i id d i é d )
16/08/2010 10
(actividades – comportamiento – métodos).
![Page 11: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/11.jpg)
Representación gráfica de un objeto
Nombre del Objeto: Clasej
Datos
Métodos / FuncionesFuncionesMiembro
TAYLOR UML
16/08/2010 11
![Page 12: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/12.jpg)
Definición del objeto cocheDefinición del objeto coche
Toyo2: Coche
Definición Especifica
Blanco2001P tToyo:Coche
Definición Completa
PetaQWS123
Rojo2007
Toyo:Coche
Toyo2: COCHE
R t ió Si lifi d
GoldABC123
Representación Simplificada de un objeto previamente definido
Ir()Parar()
16/08/2010 12
definido.Parar()Girar_a_la_D()Girar_a_la_I()
![Page 13: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/13.jpg)
Abstracción (2)“Supresión intencionada, u ocultamiento, de algunos detalles de
un proceso o artefacto, con el objeto de destacar de manera másp jclara otros aspectos, detalles o estructuras”
[Booch’96]
16/08/2010 13
![Page 14: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/14.jpg)
AbstracciónAbstracción
En palabras sencillas “abstracción” significa fil l i d d i dfiltrar las propiedades y operaciones de un objeto hasta que queden solamente aquellas que necesitamos. (Generalización)
HH:mm:ss
16/08/2010 14
![Page 15: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/15.jpg)
Paso inicial en la definición del objeto coche para su venta
CocheRepresentación Simplificada
CocheTiene las características:
•Color
Clase:Clase:
color: Cadenamodelo: Int
CocheDDAATT
•Color •Modelo•Marca
marca: Cadenaprecio: Float
TTOOSS
Funciones que puede realizar:
•Precio
RegistroCoche()Mostrar()
SS
M
realizar:•Registro del coche•Mostrar datos del coche
16/08/2010 15
Mostrar()ModificaPrecio()Modificar()
MET
•Modificar el precio•Modificar otros datos
![Page 16: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/16.jpg)
Definición del objeto cocheDefinición del objeto coche
Car2: Coche
Definición Especifica
Blanco2001P t
Definición CompletaCar1: Coche Peta
4500Rojo2007
Car1: Coche
Car1: COCHE
R t ió Si lifi d
2007Gold8000
Representación Simplificada de un objeto previamente definido
RegistroCoche()Mostrar()
16/08/2010 16
definido.Mostrar()ModificaPrecio()Modificar()
![Page 17: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/17.jpg)
E l ióEncapsulación (2)
“Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’96]
16/08/2010 17[Booch’96]
![Page 18: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/18.jpg)
E l ióEncapsulaciónEs el “empaquetar” en una clase los datos (propiedades) y el código (métodos) que (p p ) y g ( ) qopera en esos datos. El acceso a esos datos solo es permitido aEl acceso a esos datos solo es permitido a través de los componentes públicos del
bj (P i i i d l i )objeto.(Principio de ocultamiento)La calculadora oculta las
i lioperaciones que realiza internamente de la
persona que la utiliza.
16/08/2010 18
![Page 19: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/19.jpg)
Control de acceso a miembrosControl de acceso a miembros
- color: Cadena+modelo: Int
Coche
+modelo: Int- marca: Cadena- precio: Float- Atributo privado
Clase
+ RegistroCoche() M ()
pp+ Atributo público# Atributo protegido
+ Mostrar()+ ModificaPrecio()+ Modificar()
- Método privado +Método público
é + Modificar()
Se accede sólo a miembros públicos
#Método Protegido
16/08/2010 19
Se accede sólo a miembros públicos
![Page 20: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/20.jpg)
Definición del objeto cocheDefinición del objeto coche
Definición Completa
Definición EspecificaCar1: Coche
Car2: Coche
Definición Especifica- Rojo+ 2007
Car1: Coche
- Blanco+ 2001
+ 2007- Gold- 8000
- Peta- 4500+ RegistroCoche()
+ Mostrar()
16/08/2010 20
+ Mostrar()+ ModificaPrecio()+ Modificar()
![Page 21: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/21.jpg)
Envío de Mensajes
Los objetos trabajan entre si por medio del í d jenvío de mensajes.
16/08/2010 21
![Page 22: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/22.jpg)
Mensajes
Sintaxis:Objeto.método()Objeto atributo públicoObjeto.atributo público
En el ejemplo:Car1.RegistroCoche( )Car1 Mostrar( )Car1.Mostrar( )Car1.Modelo = 2008
16/08/2010 22
![Page 23: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/23.jpg)
Herencia
La herencia podemos definirla como la capacidad para crear nuevas clases a partircapacidad para crear nuevas clases a partir de clases existentes.
l dLas nuevas clases podrán contar con otros atributos y operaciones.El principio en que basa la división de clases es la jerarquízación (características j q (comunes)Ventaja principal: reutilización del código
16/08/2010 23
Ventaja principal: reutilización del código.
![Page 24: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/24.jpg)
Herencia simple
Clase Derivada hereda datos y métodos de una sola clase baseuna sola clase base.
PolígonoPolígono
Triangulo Rectángulo Hexágono
16/08/2010 24
![Page 25: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/25.jpg)
Herencia Múltiple
Clase Derivada hereda datos y métodos de á d l bmás de una clase base.
PersonaPersona
Profesor Investigador
Profesor
16/08/2010 25
Universitario
![Page 26: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/26.jpg)
P li fiPolimorfismo
Mediante esta propiedad los métodos de los objetos pueden tener el mismo nombre y funcionan distintopueden tener el mismo nombre, y funcionan distinto cuando se les envía un mensaje.
abrirabrir
16/08/2010 26
![Page 27: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/27.jpg)
Función AmigaTodo módulo que no sea miembro de la clase, pero que tiene acceso irrestricto a todos lospero que tiene acceso irrestricto a todos los miembros de la clase.
l //Programa- Atributo privado
Clase
//función Amiga+ Atributo público# Atributo protegido
// g
{
//+Método público()+Función Amiga()
//Instrucciones
}
16/08/2010 27
+Función Amiga()
![Page 28: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/28.jpg)
Lenguajes Orientados a Objetos
El lenguaje Simula (Simulation Language), f l i di ñó f ili lfue el primero que se diseñó para facilitar la programación orientada a objetos.Lenguaje C++, JAVA, SmalltalkJAVA d ll d l SJAVA, desarrollado por la empresa SunMicrosystems en 1995 y que se ha extendido ampliamente en World WideWeb.
16/08/2010 28
![Page 29: Conceptos Fundamentales de la Programación Orientada a ...virtual.usalesiana.edu.bo/web/practica/archiv/POO_2_2010 [Modo de... · Identificación de los Objetos según Shlaer, Mellor](https://reader031.fdocuments.net/reader031/viewer/2022011818/5e8721bbd6c0fc4ae038f3bf/html5/thumbnails/29.jpg)
Fin de la presentaciónp
16/08/2010 29