Este documento describe los principios básicos de la programación orientada a objetos. Explica conceptos clave como clases, objetos, herencia, encapsulamiento y polimorfismo. También discute los beneficios de usar este paradigma de programación como facilitar la reutilización de software y el mantenimiento.
Proyecto integrador. Las TIC en la sociedad S4.pptx
Programacion orientada a_objetos
1. INSTITUTO TECNOLOGICO DE MINATITLAN
ALUMNOS:
-Alvarado Méndez Pedro Eusebio
-Contreras Cruz Christoper
Carrera: Ing. Electrónica
Materia: Programación Visual
Profesora: Ing. Guillermina Jiménez Rasgado
Tema: Principios de la Programación Orientada a Objetos
2. OBJETIVO
Describir la importancia y los beneficios del
desarrollo de software Orientado a Objetos
Listar los inconvenientes del desarrollo de
Software Orientado a Objetos
Listar y describir los principios
fundamentales de la Orientación a Objetos
3. INTRODUCCIÓN
Los problemas suelen tener varias soluciones
posibles.
En programación existen diversas metodologías
que nos ayudan a enfrentar un problema.
Cada metodología tiene diversos lenguajes que las
soportan.
Algunos lenguajes soportan varias
metodologías.
4. PROGRAMACIÓN ORIENTADA A OBJETOS (POO)
Es un paradigma de
programación que usa objetos y
sus interacciones para diseñar
aplicaciones y programas de
computadora.
Está basado en varias técnicas,
incluyendo herencia,
modularidad, polimorfismo, y
encapsulamiento
Trata de utilizar una visión real
del mundo dentro de nuestros
programas.
5.
6. ¿POR QUÉ NECESITAMOS HACER UN PROGRAMAR?
Aprender un programa es un camino creativo
nosotros podemos tomar algunas ideas del siguiente
nivel y expresar soluciones a la sociedad.
Facilita la creación de software de calidad: potencia
en mantenimiento, la extensión y la reutilización.
A través del proceso de programar, nosotros
aprendemos varias habilidades como lectura de
crítica, análisis de pensamiento y creación de
síntesis.
Pero nosotros no podemos programar todas las
soluciones con el mismo método eso es porque
aparece la paradigma de la programación
7. VENTAJAS DE LA POO
Facilita la reutilización del software a través de
la herencia, la encapsulación y el polimorfismo
que son las herramientas más potentes del
paradigma de la POO.
Facilita la construcción de programas portables.
Facilita el mantenimiento.
Provoca que las tareas de análisis, diseño e
implementación sean más intuitivas, ya que se
manejan objetos.
9. CLASE
Una clase es una construcción que se utiliza como
un modelo (o plantilla) para crear objetos de ese
tipo.
El modelo describe el estado y contiene el
comportamiento que todos los objetos creados a
partir de esa clase tendrán. Un objeto creado a
partir de una determinada clase se denomina una
instancia de esa clase.
Clase
Atributos
Operaciones
10. OBJETO
Un objeto es algo de lo que hablamos y que
podemos manipular.
Existen en el mundo real (o en nuestro entendimiento
del mismo)
Un objeto puede ser creado instanciando una clase,
como ocurre en la programación orientada a objetos, o
mediante escritura directa de código y la replicación
otros objetos, como ocurre en la programación basada
en prototipos.
Objeto:Clase
Atributo1=valor
Atributo2=valor
...
11. ABSTRACCIÓN
Expresa las características esenciales de un objeto, las
cuales distinguen a los objetos de los demás.
Nos permite trabajar con la complejidad del mundo real
Separaremos el comportamiento de la implementación
Es más importante saber qué se hace en lugar de cómo
se hace:
-Un sensor de temperatura
Sabemos que...
mide la temperatura
nos muestra su valor
se puede calibrar...
No sabemos... (no nos importa)
cómo mide la temperatura
de qué está hecho.
12. COHESIÓN
Es una medida de la especialización con la que cuenta un
objeto dentro de un sistema, entre mas alta sea esta, es
mejor.
La cohesión tiene que ver con la forma en la que
agrupamos unidades de software en una unidad mayor.
Por ejemplo, la forma en la que agrupamos funciones en
una librería, o la forma en la que agrupamos métodos en
una clase, o la forma en la que agrupamos clases en una
librería, etc...
Se suele decir que cuanto más cohesionados estén los
elementos agrupados, mejor.
13. OCULTAMIENTO DE INFORMACIÓN
(ENCAPSULAMIENTO)
Son los datos miembro de un objeto de manera que sólo se
pueda cambiar mediante las operaciones definidas para ese
objeto.
Ninguna parte de un sistema complejo debe depender de los
detalles internos de otra.
Complementa a la abstracción
Se consigue:
Separando la interfaz de su implementación
Ocultando la información interna de un objeto
Escondiendo la estructura e implementación de los métodos
(algoritmos).
Exponiendo solo la forma de interactuar con el objeto
14. EJEMPLO:
Objeto 2
Objeto 1
Objeto 3
function Sumar (a,b)
Sumar = a + b
End Function
Objeto2.sumar (a,b)
Objeto3.sumar (a,b,c)
function Sumar (a,b,c)
Sumar = a + b + c
End Function
El objeto 1 invoca a 2 métodos que llevan
el mismo nombre pero funcionan diferente
en cada objeto.
15. HERENCIA
Es una propiedad que permite que los objetos
sean creados a partir de otros ya existentes,
obteniendo características (métodos y atributos)
similares a los ya existentes.
¡Relación característica de la OOP!
Evita definir repetidas veces
las características comunes a
varias clases
Una de las clases comparte la estructura y/o el
comportamiento de otra(s) clase(s).
También se denomina relación “es un/a” (is a)
16.
HERENCIA (VOCABULARIO)
Clase base o superclase: clase de la cual se hereda
Clase derivada o subclase: clase que hereda
Herencia simple: Hereda de una sola clase
Herencia múltiple: Hereda de varias clases
Java solo la soporta parcialmente
Presenta diversos problemas (¿qué hacer cuando se hereda más de una
vez de la misma clase?)
Clase abstracta: La que no lleva, ni puede llevar, ningún objeto
asociado
Polimorfismo: Posibilidad de usar indistintamente todos los
objetos de un clase y derivadas.
17.
18. CLASES ABSTRACTAS
Son clases especiales que no se pueden instanciar,
es decir que no se puede volver en objetos, pero
puede heredar y las clases hijas serán las
encargadas de agregar la funcionalidad a cada uno
de los métodos abstractos, ya sean métodos que no
tienen cuerpo ni siquiera vacío, en su lugar deber
tener comillas “,”. Solo las clases abstractas y las
interfaces pueden tener métodos abstractos, si los
tienen eso quiere decir que debe tener el modificador
“abstract1.
19. EJEMPLO
Como ejemplo tomaremos dos figuras
geométricas, el Rectángulo y el
Triangulo rectángulo, para el ejemplo
sólo consideraremos dos
características similares: el ancho y el
alto, por lo que podemos crear una
súper clase Figura geométrica con
estas dos características y sus
métodos correspondientes, además
del métodos getArea() que devolverá
el área de la Figura. Pero, se
presenta un problema, el cálculo del
área del Rectángulo es diferente al
cálculo del área del Triangulo. Área
del Rectángulo = ancho X alto Área
del Triangulo = (ancho X alto)/2 Por lo
tanto, el método getArea() deberá ser
abstracto, por lo cual, la clase Figura
también deberá ser abstracta.
20. INTERFACES
Es un conjunto de métodos
que indican que una clase
tiene un comportamiento
particular además del que
hereda de sus superclases.
Se definen un conjunto de
métodos sin especificar su
implementación. Cuando
una clase implementa una
interfaz debe especificar
todos los métodos
contenidos en ella.
Para definir una clase que
implementa una interfaz hay
que usar la palabra
clave class*
21. POLIMORFISMO
Es la capacidad de tener
métodos con el mismo nombre,
con comportamientos
diferentes, conocido como la
sobre-escritura de métodos y la
sobrecarga de operadores.
En ella expresa la posibilidad
de que el mismo mensaje,
enviado a objetos distintos,
ejecute métodos distintos.
Esto significa que podemos
definir dentro de dos clases
distintas dos operaciones con
el mismo nombre y aspecto
externo, pero con distintas
implementaciones para cada
clase.
22. ACOPLAMIENTO:
Es la medida con la que un objeto depende
de otro para funcionar, entre menor sea esta,
es mejor. La información fluye a través de
mensajes.
Ejemplo:
23. ASOCIACIONES DE OBJETOS:
El momento en que dos objetos se unen para
trabajar juntos y así, alcanzar una meta.
Un punto a tomar muy en cuenta es que ambos
objetos son independientes entre sí, veremos
un poco más adelante qué implicación tiene
esto. Para validar la asociación, la frase “Usa
un ”.
24. UML (UNIFIED MODELING LANGUAGE)
UML es un lenguaje de modelado para especificar
el análisis y diseño de sistemas orientados a
objetos.
Permite diagramas los requerimientos funcionales
del sistemas : Diagrama de Casos de Uso.
Permite abstraer mediante diagramas específicos
las diferentes clases y objetos con sus respectivos
atributos
y
métodos
logrando
especificar
claramente las correspondientes relaciones o envió
de mensajes entre objetos. Diagramas de Clases,
Objetos y de Secuencia.
25. EJEMPLO:
Sistema de Gestion de Proyectos
(SGP)
Validar Acceso
Administrador
proyectos
Sistema de Gestion de Proyectos
(SGP)
Crear Proyecto
Administrador
proyectos
Asignar insumo
Asignar integrante