Programación i 1. diseño orientado a objetos

19
Programación I Diseño Orientado a Objetos Ing. Edward Ropero Magister en Gestión, Aplicación y Desarrollo de Software

Transcript of Programación i 1. diseño orientado a objetos

Page 1: Programación i 1. diseño orientado a objetos

Programación IDiseño Orientado a Objetos

Ing. Edward RoperoMagister en Gestión,

Aplicación y Desarrollo de Software

Page 2: Programación i 1. diseño orientado a objetos

IntroducciónPrincipios de la Programación Estructurada

Los programas consisten en una serie de acciones que se ejecutan en secuencia

Todas las estructuras cuentan con un solo punto de entrada y un solo punto de salida

Sólo hay una forma de entrar en cada estructura de control y sólo hay una forma de salir de ella.

Page 3: Programación i 1. diseño orientado a objetos

Fundamentos del diseñoorientado a objetos

Se basa en modelar el mundo real; trabaja con objetos en el sistema que interactúan unos con otros a través de mensajes. Proporciona los recursos para ocuparse de los objetos de un sistema complejo

La programación orientada a objetos no debe confundirse con un lenguaje programación orientado a objetos

Page 4: Programación i 1. diseño orientado a objetos

Fundamentos del diseñoorientado a objetos

Ejemplo: a. Problema: Una persona necesita ver televisión.b. Solución: Existen 3 elementos o agentes que se

pueden abstraer del problema

ELEMENTO DESCRIPCION

Persona Tiene sus propios atributos: Color piel, Altura, genero, Color ojos, Cabello, etc. Y tiene un comportamiento: Ver , escuchar, hablar, etc.

Control Remoto

Tiene sus propios atributos: Tamaño, color, tipo, batería, etc. Y tiene un comportamiento: Enviar señal, codificar señal, cambiar canal, aumentar volumen, ingresar a menú, prender TV etc.

Televisor Tiene sus propios atributos: pulgadas, tipo, numero parlantes, marca , etc. Y tiene un comportamiento: Decodificar señal, prender, apagar, emitir señal, emitir audio, etc.

Page 5: Programación i 1. diseño orientado a objetos

Programación basada en objetos

Considerada como técnica de programación consiste en ampliar el lenguaje existente con nuevas operaciones y tipos de datos definidos por el usuario.

Considerada como técnica de diseño, consiste en dedicar módulos separados a la realización de cada tipo abstracto de datos y cada función importante.

NO SUSTITUYE A LA PROGRAMACIÓN ESTRUCTURADA, SINO MÁS BIEN LA EXTIENDE

Page 6: Programación i 1. diseño orientado a objetos

Conceptos básicos

Page 7: Programación i 1. diseño orientado a objetos

Permite a una persona concentrarse en los aspectos esenciales del problema a la mano, mientras ignora detalles que tienden a distraer; en una manera conveniente de manejar la complejidad. Por lo tanto, la abstracción, es eliminar lo innecesario

Page 8: Programación i 1. diseño orientado a objetos

EncapsulamientoLa esencia del encapsulamiento recae en que cuando un objeto trae consigo su funcionalidad, esta última se oculta. La utilidad se ve en la reducción de complejidad, esto es debido a que las Clases se comportan como cajas negras donde solo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque solo interesa saber que hace la Clase pero no como lo hace

En la orientación a objetos, el encapsulamiento ayuda a mantener junto los elementos de datos, así como las funciones y procedimientos que operan sobre ellos. En otros paradigmas, como el procedimental (programación orientada a procedimientos, el cual un programa es estructurado en base a sus funciones) los datos y operaciones se mantienen separados

Page 9: Programación i 1. diseño orientado a objetos

Polimorfismo

Es la posibilidad de hacer que una operación exhiba diferentes comportamientos en instancias diferentes. El comportamiento depende de los tipos de datos usados en diferentes operaciones. La correspondencia entre la llamada actual y la implementación de la funcionalidad dependerá de los argumentos pasados con la llamada. Polimorfismo significa, “un nombre, múltiples funcionalidades”.

Page 10: Programación i 1. diseño orientado a objetos

HerenciaLas clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple

Page 11: Programación i 1. diseño orientado a objetos

Clases y Objetos

Objetos

Un objeto es una entidad cohesiva que tiene datos (atributos), comportamiento (operaciones) y opcionalmente estado.Características:

Datos (atributos)

Comportamiento (operaciones)

Identidad

Page 12: Programación i 1. diseño orientado a objetos

Clases y Objetos

Clases

Una clase es una abstracción que define las propiedades comunes a una colección de objetos.

Carro

MarcaPlaca

Modelo…

arrancarfrenar

acelerar...

Nombre de la Clase

Propiedades

Atributos

Page 13: Programación i 1. diseño orientado a objetos

ClasesLa clase define:

Los atributos de los objetos: En cada objeto de una clase dada, los atributos pueden tener diferentes valores, pero todos los objetos de una clase tienen los mismos atributos

La interfaz que exponen los objetos: Todos los objetos de una clase dada exponen la misma interfaz mediante la cual pueden crearse, consultarse o modificarse.

El comportamiento de los objetos: La implementación de un objeto está definida por su clase.

Page 14: Programación i 1. diseño orientado a objetos

Métodos y Atributos

Método: Sección de código autocontenida que pertenece a una clase y que define la parte del comportamiento del sistema correspondiente a dicha clase y a sus objetos

Page 15: Programación i 1. diseño orientado a objetos

Métodos

Observaciones:

La tarea asignada a un método debe estar bien definida.

El nombre de un método debe indicar exactamente lo que hace (mediante un verbo).

Los métodos deben tener una longitud adecuada.

Métodos demasiado extensos hacen difícil su comprensión ydepuración.

Page 16: Programación i 1. diseño orientado a objetos

MétodosSintaxis:

[Modificadores] tipoDevuelto identificadorMetodo([argumentos]){ // cuerpo del método}

Ejemplo: public bool verificarDatos(string id, string psw)

Código Opcional

Page 17: Programación i 1. diseño orientado a objetos

Tipo devuelto por un métodoTipo devuelto: Es el tipo del valor devuelto al objeto que invocó almétodo. Puede ser la palabra reservada void, un tipo primitivo Javao una clase

primitivo

nada

clase

bool verificarDatos(string id, string psw)

void dibujarCuadrado(int lado)

Auto autoConMultas ()

Page 18: Programación i 1. diseño orientado a objetos

Lista de parámetros de un método

La lista de parámetros (argumentos) es una lista de las declaracionesde parámetros que se pasan al método para su ejecución

La lista puede estar vacía pero los paréntesis son obligados

Es obligatorio indicar el tipo de cada parámetro

Los argumentos de entradadeben coincidir en número

y tipo y aparecer en elmismo orden con los

declarados en el método

Page 19: Programación i 1. diseño orientado a objetos