programación orientada al objeto
DESCRIPTION
Unidad 1 Programación orientada al objetoTRANSCRIPT
![Page 1: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/1.jpg)
PROGRAMACIÓN
ORIENTADA AL OBJETO
MARIO CASTILLO ROMO
INGENIERO INFORMÁTICO
![Page 2: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/2.jpg)
CalificacionesFecha Porcentaje Tipo
29/08/2012 5 Control 1
12/09/2012 20 Solemne 1
10/10/2012 5 Control 2
31/10/2012 20 Solemne 2
21/11/2012 5 Control 3
12/12/2012 10 Tareas
12/12/2012 35 Solemne 3
19/12/2012 - Recuperativa
![Page 3: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/3.jpg)
Programación estructurada
• El programa completo tiene un diseñomodular.
• Los módulos se diseñan con metodologíadescendente (puede hacerse tambiénascendente).
• Cada módulo se codifica utilizando las tresestructuras de control básicas: secuenciales,selectivas y repetitivas
• Estructuración y modularidad son conceptoscomplementarios.
![Page 4: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/4.jpg)
Programación Orientada al objeto
• Un objeto, es una abstracción de un
conjunto de cosas del mundo real.
• El objeto posee funcionalidades.
• El objeto posee características que
pueden ser usadas en forma
independiente, pero juntas se
complementan.
![Page 5: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/5.jpg)
Características de POO
![Page 6: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/6.jpg)
Programación Orientada al objeto
![Page 7: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/7.jpg)
Programación Orientada al objeto
![Page 8: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/8.jpg)
POO V/S Estructurada
![Page 9: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/9.jpg)
POO V/S Estructurada
• Los lenguajes de programación estructurada:
– Están orientados a acciones.
– La unidad de programación es la función.
• La programación orientada a objetos:
– Encapsula datos (atributos) y métodos
(comportamiento) en objetos que están
relacionados entre sí.
– La unidad de programación es la clase.
![Page 10: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/10.jpg)
Comunicación entre Objetos
• Cuando se produce un evento, el objeto
receptor sabe cuál es el objeto emisor,
qué evento se produjo y el valor de los
datos asociados con dicho evento.
![Page 11: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/11.jpg)
Comunicación entre Objetos
![Page 12: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/12.jpg)
Estructura interna de un Objeto
• Un Objeto esta compuesto por:
– Atributos
– Métodos
• Atributos, describen el estado del objeto yesta compuesto de un nombre y un valor
• Métodos, Son las operaciones o serviciosque describen el comportamiento delObjeto
![Page 13: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/13.jpg)
Herencia
• La herencia es la propiedad que permite alos objetos construirse a partir de otrosobjetos.
• Permite pasar de una clase a otra, ciertascaracterísticas, métodos, parámetros,funciones y atributos de una clase, entredos objetos con relación.
• Permite el ahorro de código y lacombinación de clases.
![Page 14: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/14.jpg)
Ejemplo de Herencia
![Page 15: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/15.jpg)
Sobrecarga
• Una Clase puede tener mas de 1
constructor.
• Los Constructores se diferencian por
cantidad, tipo y orden de parámetros.
![Page 16: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/16.jpg)
Polimorfismo
• Es la capacidad que tienen los Objetos de
una clase de responder al mismo mensaje
o evento en función de los parámetros
utilizados durante su invocación.
![Page 17: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/17.jpg)
Polimorfismo
![Page 18: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/18.jpg)
Modularidad
• Es la división de un sistema en módulos,
los cuales se comunican entre si.
• La unidad de modular es la Clase
• Ej. Una casa
– Modulo o Clase Calefacción, alcantarillado,
agua, electricidad, gas, etc.
![Page 19: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/19.jpg)
Abstracción en lenguajes de
programación
• La abstracción consiste en captar las
características esenciales de un objeto,
así como su comportamiento.
• Cuando se diseña un modelo orientado a
objetos es útil introducir clases a cierto
nivel que pueden no existir en la realidad
pero son construcciones conceptuales
útiles.
![Page 20: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/20.jpg)
Relaciones entre clases
• Una relación es una conexión semántica
entre clases
• Permite que una clase conozca sobre los
atributos, operaciones y relaciones de
otras clases.
![Page 21: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/21.jpg)
Relaciones entre clases
• Existen varios tipos de relaciones:
– Asociación
– Agregación
– Generalización
– Especialización
![Page 22: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/22.jpg)
Asociación
• Es una conexión conceptual entre clases
• Una asociación es una abstracción de los
enlaces que existen entre instancias de
objetos
![Page 23: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/23.jpg)
Asociación
![Page 24: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/24.jpg)
Agregación
• Es un tipo especial de asociación que
expresa un acoplamiento mas fuerte entre
clases.
• Las agregaciones representan conexiones
bidireccionales y asimétricas.
• Permite la representación de relaciones
tales como maestro y esclavo, todo y
parte de, compuesto y componentes.
![Page 25: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/25.jpg)
Agregación
![Page 26: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/26.jpg)
Herencia
• La herencia es la propiedad que permite a
los objetos construirse a partir de otros
objetos.
• Permite pasar de una clase a otra, ciertas
características, métodos, parámetros,
funciones y atributos de una clase, entre
dos objetos con relación.
• Permite el ahorro de código y la
combinación de clases.
![Page 27: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/27.jpg)
Generalización
• Es la que realizamos cuando tenemos
muchas clases que comparten
funcionalidades y por homogeneizar las
partes comunes se decide crear una clase
que implemente toda esa parte común y
se dejan solo las partes especificas en
cada clase.
![Page 28: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/28.jpg)
Generalización
![Page 29: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/29.jpg)
Especialización
• Es la que se realiza cuando necesitamos
crear una clase nueva que disponga de
las mismas características que otra pero
que le añada funcionalidades.
![Page 30: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/30.jpg)
Especialización
![Page 31: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/31.jpg)
Excepciones
![Page 32: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/32.jpg)
Excepciones
![Page 33: Programación orientada al objeto](https://reader034.vdocuments.site/reader034/viewer/2022052311/559db25e1a28abb2738b4621/html5/thumbnails/33.jpg)
Excepciones