Programacion orientada a_objetos

26
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

description

Tipos de programacion orientada a aobtejos (POO)

Transcript of Programacion orientada a_objetos

Page 1: Programacion orientada a_objetos

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

Page 2: Programacion orientada a_objetos

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

Page 3: Programacion orientada a_objetos

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.

Page 4: Programacion orientada a_objetos

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.

Page 5: Programacion orientada a_objetos
Page 6: Programacion orientada a_objetos

¿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

Page 7: Programacion orientada a_objetos

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.

Page 8: Programacion orientada a_objetos

CONCEPTOS BASICOS

Page 9: Programacion orientada a_objetos

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

Page 10: Programacion orientada a_objetos

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:ClaseAtributo1=valorAtributo2=valor...

Page 11: Programacion orientada a_objetos

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.

Page 12: Programacion orientada a_objetos

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.

Page 13: Programacion orientada a_objetos

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

Page 14: Programacion orientada a_objetos

EJEMPLO:Objeto 2

function Sumar (a,b) Sumar = a + bEnd Function

Objeto 1Objeto2.sumar (a,b)Objeto3.sumar (a,b,c)

Objeto 3function Sumar (a,b,c) Sumar = a + b + cEnd Function

El objeto 1 invoca a 2 métodos que llevan el mismo nombre pero

funcionan diferente en cada objeto.

objeto

Correr ( ) Correr (

)

Page 15: Programacion orientada a_objetos

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 avarias 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)

Page 16: Programacion orientada a_objetos

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.

Page 17: Programacion orientada a_objetos
Page 18: Programacion orientada a_objetos

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.

Page 19: Programacion orientada a_objetos

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.

Page 20: Programacion orientada a_objetos

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*

Page 21: Programacion orientada a_objetos

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.

Page 22: Programacion orientada a_objetos

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:

Page 23: Programacion orientada a_objetos

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 ”.

Page 24: Programacion orientada a_objetos

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.

Page 25: Programacion orientada a_objetos

EJEMPLO:

Sistema de Gestion de Proyectos (SGP)

Administrador proyectos

Validar Acceso

Sistema de Gestion de Proyectos (SGP)

Crear Proyecto

Asignar insumo

Administrador proyectos

Asignar integrante