programación orientada a objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.prog...en el...

32
Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 Estructura de datos y Programación / Programación I Tema: Programación Orientada a Objetos

Upload: dinhthien

Post on 18-Mar-2018

218 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Ing. Analia Méndez – Ing. Raquel Zarco

Año: 2012

Estructura de datos y Programación / Programación I

Tema: Programación Orientada a Objetos

Page 2: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

¿Qué es Programación Orientada a

Objetos (POO)? • Es un paradigma de programación que usa objetos y

sus interacciones, para diseñar aplicaciones y

programas informáticos.

• La Programación Orientada a Objetos permite describir

el problema en términos del problema y no en términos

de la computadora donde la solución será ejecutada.

• La Orientación a Objetos proporciona al programador

conceptos y herramientas para modelar y representar

elementos del espacio del problema a resolver.

• A los elementos del espacio del problema y sus

representaciones en el espacio de solución se los

denomina OBJETOS.

Page 3: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

En el mundo real hay objetos y esos objetos tienen un tipo

o clase.

Por ejemplo: Modelizar un auto en POO

El auto es el elemento principal que tiene una serie de

características, como podrían ser el color, el modelo o la

marca. Además tiene una serie de funcionalidades.

En POO el auto sería el objeto, las propiedades serían las

características como el color o el modelo y los métodos

serían las funcionalidades asociadas como ponerse en

marcha o parar.

Page 4: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Propiedades del modelo objeto

son:

Abstracción

Encapsulamiento

Herencia

Polimorfismo

Page 5: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Abstracción Propiedad que permite representar las características

esenciales de un objeto.

Consiste en describir una entidad del mundo real y utilizar esta descripción en un programa. La generalización conceptual de los atributos y comportamiento de un determinado conjunto de objetos es la CLASE.

La clase se define como una descripción abstracta de un grupo de objetos, cada uno de los cuales se diferencia por su estado especifico y por la posibilidad de realizar una serie de operaciones. Por ejemplo: una lapicera es un objeto que tiene un estado (lleno o vacio) y sobre el cual se pueden realizar operaciones como escribir, poner/ quitar capuchón, etc.

Page 6: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Encapsulamiento y ocultamiento

Es la propiedad que permite asegurar que el contenido

de la información de un objeto esta oculta al mundo

exterior: el objeto A no conoce lo que hace el objeto B y

viceversa.

La información que cada objeto posee solo es accesible y

modificable por el mismo.

La clase representa la encapsulación de una abstracción.

Page 7: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Herencia Una clase puede tener sus propios atributos y

operaciones adicionales a lo heredado.

Las clases se disponen en una jerarquía, donde una clase

hereda todos los atributos y operaciones de las clases

superiores en la jerarquía.

Page 8: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar
Page 9: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Polimorfismo Es la propiedad que permite enviar el mismo mensaje a

objetos de diferentes clases , cada uno de ellos responde a

ese mismo mensaje de modo distinto dependiendo de su

implementación.

Ejemplo: polimorfismo implica tomar un objeto de un tipo

mamífero por ejemplo e indicarle que ejecute comer,

esta acción se ejecutara de forma diferente según sea el

objeto mamífero al que se aplica.

Page 10: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Ejemplo

Page 11: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Elementos fundamentales

Clase

Objeto

Mensaje

Atributo

Método

Instancia

Page 12: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Clase

Es un molde de objetos que tienen igual característica,

responden a los mismos mensajes y se comportan ante ellos

de la misma manera.

Los objetos : son instancias de la clase

Clase Perro objetos Pluto y Lasie

Nombre

AñoNac

Raza

Cant_patas

Pluto

1950

….

4

Lasie

1930

….

4

Page 13: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Objetos

Una entidad: cosa tangible y/o visible (camión)

Una transacción: Algo que puede comprenderse

intelectualmente. (proceso)

Una abstracción: una entidad software. (lista)

Page 14: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Características de un objeto

Un objeto tiene:

Identidad: un identificador unívoco.

Estado: un conjunto de propiedades (atributos).

Comportamiento: un conjunto de operaciones (métodos).

Objeto = Identidad + Comportamiento + Estado

Page 15: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Estructura de un objeto

Page 16: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Ejemplo Práctico

Page 17: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Ejemplo de clase y objeto

Page 18: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Clases vs. Objetos Clase:

Un patrón para la definición del estado y el comportamiento de un tipo particular de objetos.

Todos los objetos de una clase dada son idénticos en estructura y comportamiento, pero tienen identidad única.

Objeto (instancia):

Pertenece a una clase en particular

Los objetos son creados y destruidos en tiempo de ejecución. Residen en el espacio de memoria.

Page 19: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Instancia

Instancia es el término utilizado para referirse

a un objeto que pertenece a una clase

concreta.

Se dice que un objeto es la instancia de una

clase.

La acción de crear un objeto a partir de una

clase se llama instanciar.

Page 20: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Definición de atributo

Es una característica fundamental de cada objeto de una

clase.

Una clase puede definir un cierto número de atributos

estáticos.

Todos los atributos tienen algún valor. Este valor puede

ser una cantidad, una relación con otro objeto, etc…

Page 21: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Definición de método Es una acción que se realiza sobre un objeto para consultar o

modificar su estado.

Tipos de operaciones:

Modificador (setter): altera el estado de un objeto.

Selector (getter): accede al estado de un objeto sin alterarlo.

Iterador: permite acceder a todas las partes de un objeto.

Constructor: crea un objeto e inicializa su estado.

Destructor: limpia el estado de un objeto y lo destruye.

Propósito general: la lógica del programa

Page 22: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Mensaje Un Mensaje es la transmisión de información de un

objeto a otro.

Llamadas a métodos: un objeto A realiza una llamada a

un método de un objeto B.

Esto significa que dentro del código de un método de un

objeto A, se está llamando a un método del objeto B.

Esta es la forma más común del paso de un mensaje.

OBJETO A OBJETO B

Convoca al método

Devuelve el resultado

Page 23: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

UML(Unified Modeling Languaje)

Es un lenguaje de modelado que ha sido diseñado para la

traducción de modelos de aplicaciones a lenguajes de

programación.

El análisis y diseño de una aplicación Orientada a Objetos

necesita de una notación grafica que represente los elementos

de la P.O.O.

El método mas utilizado es el UML.

Page 24: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Definición de Objeto por autores del UML

“Un objeto se caracteriza por un número de operaciones y un estado que

recuerda el efecto de estas operaciones”

Ivar Jacobson

“Un objeto tiene un estado, comportamiento e identidad; la estructura y

comportamiento de objetos similares se definen en sus clases comunes”

Grady Booch

“Una manifestación concreta de una abstracción; una entidad con una

frontera e identidad bien definidas que encapsulan estado y

comportamiento; una instancia de una clase”.

Jame Rumbaugh

Page 25: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Notación grafica de una clase

Page 26: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Ejemplo de una clase

Page 27: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Plataforma Java

Java fue diseñado por James Gosling, de Sun

Microsystems, en 1995. Es un lenguaje orientado a

objetos, independiente de la plataforma, por lo que

un programa hecho en Java se ejecutará igual en

un PC con Windows que en una PC basada en

Linux.

Para el desarrollo de programas que incluye varios

componentes que se interconectan entre si

utilizaremos Java EE (Java Platform, Enterprise

Edition) o J2EE — orientada a entornos

distribuidos empresariales o de Internet.

Page 28: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Para poder ejecutar cualquier aplicación Java en cualquier sistema operativo es

necesario tener instalado el JRE (Java RunTime Environment - Entorno de desarrollo

de Java). Se compone de herramientas necesarias como la máquina virtual de java

(java.exe) y el conjunto de librerías estándar de Java. El JDK incluye a JRE.

SDK (Software Development Kit - kit de software de desarrollo),a partir de la versión

1.2 de Java al JDK se le empezó a llamar de esta manera.

Page 29: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Desarrollo en Java

Fase 1: Edición: editar y crear un código (.java)

Fase 2: Compilación: editar y corregir errores.(.class)

Fase 3: Cargador de Clases

Fase 4: Verificación del ByteCode

Fase 5: Ejecución: el byte código es ejecutado por el

interprete de java(JVM) Maquina Virtual Java

Fase 6: Depuración: si el código no funciona correctamente

se ejecuta el programa paso a paso y examinar el efecto de las

instrucciones.

Page 30: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar
Page 31: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

Entornos de Desarrollo (Interface Developement

Environment, IDE)

Java no cuenta con un entorno de desarrollo propio,

por esa razón, se puede utilizar desde un bloc de

notas hasta entornos de desarrollo avanzados como

NetBeans.

Netbeans es un poderoso entorno de desarrollo que

permite desarrollar aplicaciones complejas con

interacción web, UML, base de datos, aplicaciones

para telefonía móvil e inclusive Inteligencia Artificial

(IA).

NETBEANS 7.1 es un producto libre y gratuito sin

restricciones de uso.

Page 32: Programación Orientada a Objetosecaths1.s3.amazonaws.com/programacionunse/1893391127.Prog...En el mundo real hay objetos y esos objetos tienen un tipo o clase. Por ejemplo: Modelizar

EJERCICIOS

Determinar Atributos y Comportamientos para los objetos

PAGINA

AUTO

CUENTA BANCARIA

MATRIZ

FIGURA

Establecer la jerarquia de clases

Vehiculo. Camion. Auto. Colectivo. Sedan. Utilitario.

Fruta- manzana- pera- durzno-