Intro oo

34
Orientación a Orientación a Objetos Objetos

Transcript of Intro oo

Page 1: Intro oo

Orientación a ObjetosOrientación a Objetos

Page 2: Intro oo

ObjetivosObjetivos

Aprender un LPOO: Aprender un LPOO: C#C#

Dominar las librerías básicas del lenguajeDominar las librerías básicas del lenguaje

Practicar los conceptos de orientación a objetos Practicar los conceptos de orientación a objetos en Javaen Java

Manejar un entorno de programación C#: Manejar un entorno de programación C#: .Net.Net

Page 3: Intro oo

IntroducciónIntroducción

La programación orientada a objetos es La programación orientada a objetos es un enfoque de programación de los más un enfoque de programación de los más populares y viene teniendo gran populares y viene teniendo gran aceptación en el desarrollo de proyectos aceptación en el desarrollo de proyectos de software. de software.

Page 4: Intro oo

IntroducciónIntroducción

En los principios de la informática, las En los principios de la informática, las máquinas eran caras y los programadores máquinas eran caras y los programadores baratos. La idea de colocar capas de baratos. La idea de colocar capas de código innecesario con el único propósito código innecesario con el único propósito de facilitar el desarrollo de aplicaciones de facilitar el desarrollo de aplicaciones parecía impensable.parecía impensable.

Page 5: Intro oo

IntroducciónIntroducción

Hoy en día, por el contrario, las máquinas Hoy en día, por el contrario, las máquinas son baratas y la gente que sabe trabajar son baratas y la gente que sabe trabajar con ellas muy cara. Entonces aparecieron con ellas muy cara. Entonces aparecieron las técnicas orientadas a objetoslas técnicas orientadas a objetos

Page 6: Intro oo

¿Qué significa¿Qué significa OrientaciónOrientación aa Objetos?Objetos?El software se organiza como una El software se organiza como una colección de colección de objetosobjetos que contienen tanto que contienen tanto estructuraestructura como como

comportamientocomportamiento..

¿Qué es el desarrollo OO?¿Qué es el desarrollo OO?Una nueva forma de pensar acerca del software Una nueva forma de pensar acerca del software basándose en abstracciones que basándose en abstracciones que existenexisten en elen el

mundomundo realreal..

Bombilla

color

encender()apagar()

Page 7: Intro oo

Que es la Programación Orientada a Objetos ? Que es la Programación Orientada a Objetos ?

Es un estilo de programación en que cada Es un estilo de programación en que cada programa es visto como un objeto se forma por programa es visto como un objeto se forma por una serie de componentes, autocontenidos que una serie de componentes, autocontenidos que cooperan para realizar las acciones de la cooperan para realizar las acciones de la aplicación completa.aplicación completa.

La programación orientada a objetos expresa un La programación orientada a objetos expresa un programa como un conjunto de estos objetos, programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.más fáciles de escribir, mantener y reutilizar.

Page 8: Intro oo

Introducción al diseño orientado por Introducción al diseño orientado por objetosobjetos

El diseño orientado por objetos (DOO), El diseño orientado por objetos (DOO), como otras metodología de diseños como otras metodología de diseños orientados a la información crean una orientados a la información crean una representación del dominio del problema representación del dominio del problema en el mundo real y lo transforma en un en el mundo real y lo transforma en un dominio de soluciones que es el dominio de soluciones que es el software. software.

Page 9: Intro oo

Introducción al diseño OxOIntroducción al diseño OxO

A diferencia de otros métodos, el DOO da A diferencia de otros métodos, el DOO da como resultado un diseño el cual como resultado un diseño el cual interconexiona los objetos de datos interconexiona los objetos de datos (elementos de datos) y las operaciones de (elementos de datos) y las operaciones de procesamiento, de forma tal que procesamiento, de forma tal que encapsula la información y el encapsula la información y el procesamiento. procesamiento.

Este encapsulamiento es el paradigma Este encapsulamiento es el paradigma fundamental de la orientación por objetos.fundamental de la orientación por objetos.

Page 10: Intro oo

ComponentesComponentes

Un componente es una pieza de software que Un componente es una pieza de software que realiza una función bien definida y posee una realiza una función bien definida y posee una interfaz bien definida.interfaz bien definida. HerenciaHerencia PolimorfismoPolimorfismo EncapsulaciónEncapsulación

Page 11: Intro oo

Constructos básicos de la Constructos básicos de la programación OxOprogramación OxO

Objeto.Objeto.

Identidad del objeto.Identidad del objeto.

Clase.Clase.

Métodos.Métodos.

Polimorfismo.Polimorfismo.

HerenciaHerencia

Page 12: Intro oo

Conceptos básicos sobre la Conceptos básicos sobre la Orientación por ObjetosOrientación por Objetos

¿ Qué es un Objeto ?¿ Qué es un Objeto ?

Un objeto es una entidad física o Un objeto es una entidad física o abstracta que tiene un abstracta que tiene un comportamiento antes ciertos comportamiento antes ciertos estímulos, tanto externos como de estímulos, tanto externos como de otros objetos específicos que se otros objetos específicos que se encuentran dentro del sistema.encuentran dentro del sistema.

Page 13: Intro oo

Conceptos básicos de OxOConceptos básicos de OxO

Objeto Físico:HornoObjeto Físico:Horno Operaciones asociadas: Operaciones asociadas:

Encendido/Apagado/Cargado/Descargado.Encendido/Apagado/Cargado/Descargado.

Objeto Abstracto:ColaObjeto Abstracto:Cola Operaciones:Operaciones: Agregar/Agregar/

Eliminar/Verificar vacía/Eliminar/Verificar vacía/

Verificar si llena/Primero cola/Siguiente Verificar si llena/Primero cola/Siguiente cola/cola/

Page 14: Intro oo

Conceptos básicos de OxOConceptos básicos de OxO

Identidad de un objetoIdentidad de un objeto

Cada objeto tiene su propia Cada objeto tiene su propia identidad que lo distingue de los identidad que lo distingue de los demás objetos. En otras palabras, demás objetos. En otras palabras, dos objetos distintos no son iguales dos objetos distintos no son iguales aunque todos los valores de sus aunque todos los valores de sus atributos sean idénticos. atributos sean idénticos.

Page 15: Intro oo

Conceptos básico de la OxOConceptos básico de la OxO

Componentes para la construcción de Componentes para la construcción de Software de un objeto.Software de un objeto.

Cuando un objeto se transforma en Cuando un objeto se transforma en una realización de software, consta de una una realización de software, consta de una interfaz, una estructura de datos privada y interfaz, una estructura de datos privada y unos procesos llamados operaciones o unos procesos llamados operaciones o métodos que son los únicos que pueden métodos que son los únicos que pueden transformar legítimamente la estructura transformar legítimamente la estructura de datos.de datos.

Page 16: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

D i c c i o n a r i o ( )

A r c h i v o I n d i z a d o

A ñ a d i r p a l a b r a S u p r i m i r p a l a b r a

E n c o n t r a r p a l a b r a . . .

I n t e r f a s e

E s t r u c t u r a d e d a t o

O p e r a c i o n e s

O b je t o d e l m u n d o r e a l

Representación abstracta de un objeto

Page 17: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Clase:Clase:

El proceso de clasificación es el El proceso de clasificación es el enfoque central de la orientación por objeto enfoque central de la orientación por objeto y concierne a la agrupación de objetos con y concierne a la agrupación de objetos con propiedades (estructuras de datos o propiedades (estructuras de datos o atributos) y comportamiento (operaciones) atributos) y comportamiento (operaciones) similares dentro de una similares dentro de una claseclase..

Una Una claseclase es la abstracción que es la abstracción que describe propiedades importantes para una describe propiedades importantes para una aplicación.aplicación.

Page 18: Intro oo

Conceptos Básicos de la OxOConceptos Básicos de la OxO

Los objetos que pertenecen a una clase se Los objetos que pertenecen a una clase se describen colectivamente por la definición de una describen colectivamente por la definición de una clase, esto significa que en lugar de describir los clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto objetos individuales la orientación por objeto concentra en un patrón tanto el estado como el concentra en un patrón tanto el estado como el comportamiento que es común a todos los objetos comportamiento que es común a todos los objetos de la clase. de la clase.

Esta clase de estructura que abarca tantos Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones modelar tanto entidades objetos como relaciones entre los objetos. entre los objetos.

Page 19: Intro oo

Conceptos Básicos de la OxOConceptos Básicos de la OxO

Cada clase describe una posibilidad infinita de un Cada clase describe una posibilidad infinita de un conjunto individual de objetos. Cada conjunto individual de objetos. Cada objetoobjeto que que pertenezca a una clase es llamado pertenezca a una clase es llamado instanciainstancia de la de la clase.clase.

La instanciación es lo inverso a la clasificación La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.mensajes "Nuevo" y "Crear" una clase.

Page 20: Intro oo

Conceptos Básicos de la OxOConceptos Básicos de la OxO

La Pedregosa

Av. Los proceres

Instancia de Compañia

Instancia de Persona

Piscina, Sauna, Golf

Instancia Compañía

Nombre Oficina_general

Teléfono

Turisol

Mérida

22454

Instancia Persona

Dirección

Pedro perez

Calle 22 entre Av. 2 y 3

Instancia de Hotel

Dirección

Nombre

Dueño

Gerente

Facilidades

Nombre

Fig. 5 Ejemplo de la clase Hotel

Page 21: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Notación para representar una clase.Notación para representar una clase.Una clase se representa por una caja la cual puede tener Una clase se representa por una caja la cual puede tener

3 regiones. 3 regiones. La primera región contiene el nombre de la clase.La primera región contiene el nombre de la clase. La segunda región contiene la lista de atributos, La segunda región contiene la lista de atributos, cada nombre de atributo puede estar seguido por cada nombre de atributo puede estar seguido por detalles opcionales tales como tipo de atributo y detalles opcionales tales como tipo de atributo y valores por defectos.valores por defectos.La tercera región contiene los nombres de las La tercera región contiene los nombres de las operaciones. Cada nombre de operación puede ser operaciones. Cada nombre de operación puede ser seguido por detalles opcionales tales como listas de seguido por detalles opcionales tales como listas de argumentos y tipos de resultados. Los atributos y argumentos y tipos de resultados. Los atributos y operaciones puede o no mostrarse; esto depende del operaciones puede o no mostrarse; esto depende del nivel de detalle deseado. nivel de detalle deseado.

Page 22: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Nombre de la clase

Nombre_atributo1: tipo dato1= valor defecto1Nombre_atributo2: tipo dato2= valor defecto2...

Nombre_operación1(lista de argumento):tipo_resultado1Nombre_operación2 (lista de argumento):tipo_resultado2...

Page 23: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Operaciones ó métodosOperaciones ó métodos

Una operación es una función o Una operación es una función o transformación que puede ser aplicada transformación que puede ser aplicada sobre los objetos en una clase. Por sobre los objetos en una clase. Por ejemplo: abrir, cerrar, ocultar, desplegar, ejemplo: abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana.son operaciones sobre una clase ventana.

Cada operación tiene un objeto Cada operación tiene un objeto destino con un argumento implícito. El destino con un argumento implícito. El comportamiento de la operación depende comportamiento de la operación depende de la clase destino.de la clase destino.

Page 24: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

PolimorfismoPolimorfismo

Polimorfismo significa que la Polimorfismo significa que la misma operación puede comportarse misma operación puede comportarse diferentemente sobre distintas clases. diferentemente sobre distintas clases. Por ejemplo, la operación "mover" Por ejemplo, la operación "mover" ejemplo puede comportarse ejemplo puede comportarse diferentemente sobre una clase llamada diferentemente sobre una clase llamada Ventana y una clase llamada Ventana y una clase llamada Piezas_ajedrez. Piezas_ajedrez.

Page 25: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Herencia Herencia   

La herencia consiste en el compartir atributos La herencia consiste en el compartir atributos y métodos entre clases basándose en una y métodos entre clases basándose en una relación jerárquica. relación jerárquica.

Una clase puede definirse ampliamente y Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más redefinirse sucesivamente en subclases más refinadas. refinadas.

Cada subclase que se incorpora, hereda todas Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona las propiedades de su superclase y adiciona sus propias y únicas propiedades. sus propias y únicas propiedades.

Page 26: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Nombre

Persona

Empleado Estudiante

Secretaría

Director

Año de experiencia

Idiomas

Dependencia

Cargo

DenominaciónCarrera

Edad Dirección Sexo

Profesión

Dependencia

Page 27: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Tipos de Herencia:Tipos de Herencia:

Simple.Simple.

MúltipleMúltiple

Page 28: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Nombre

Persona

Empleado Estudiante

Secretaría

Director

Año de experiencia

Idiomas

Dependencia

Cargo

DenominaciónCarrera

Edad Dirección Sexo

Profesión

Dependencia

SimpleSimple

Page 29: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Definición de Herencia Múltiple:Definición de Herencia Múltiple:

Una clase puede heredar rasgos de más Una clase puede heredar rasgos de más de una superclase. Una clase con más de una superclase. Una clase con más de una superclase es llamada de una superclase es llamada clase clase juntajunta. Un rasgo de una clase ancestro . Un rasgo de una clase ancestro que se encuentra más de una vez a lo que se encuentra más de una vez a lo largo de una ruta solo se hereda una largo de una ruta solo se hereda una vez. vez.

Page 30: Intro oo

Conceptos básicos de la OxOConceptos básicos de la OxO

Vehículos

Vehículos Terrestres Vehículos Acuáticos

CarrosVehículos Anfibios

Bote

MúltipleMúltiple

Page 31: Intro oo

BeneficiosBeneficios

La división en componentes reduce la La división en componentes reduce la complejidad, permite la reutilización y acelera el complejidad, permite la reutilización y acelera el proceso de ensamblaje de software.proceso de ensamblaje de software.

Los creadores de componentes pueden Los creadores de componentes pueden especializarse creando objetos cada vez mas especializarse creando objetos cada vez mas complejos y de mayor calidad.complejos y de mayor calidad.

Page 32: Intro oo

BeneficiosBeneficios

La interoperabilidad entre componentes de La interoperabilidad entre componentes de distintos fabricantes aumenta la competencia, distintos fabricantes aumenta la competencia, reduce los costos y facilita la construcción de reduce los costos y facilita la construcción de estandares.estandares.

El software se hace cada vez mas rápido, de El software se hace cada vez mas rápido, de mejor calidad y a menor costomejor calidad y a menor costo

Los costos de mantención del software se Los costos de mantención del software se reducen.reducen.

Page 33: Intro oo

Repositorio de ObjetosRepositorio de Objetos

La empresa obtiene un repositorio de objetos La empresa obtiene un repositorio de objetos probados que pueden ser utilizados en la probados que pueden ser utilizados en la construcción de nuevas aplicaciones.construcción de nuevas aplicaciones.

En este repositorio se pueden llegar a acumular En este repositorio se pueden llegar a acumular componentes que ahorraran muchos años de componentes que ahorraran muchos años de desarrollo y pruebas. desarrollo y pruebas.

Page 34: Intro oo

Repositorio de ObjetosRepositorio de Objetos

Ahorramos en:Ahorramos en: Costos de desarrollo Costos de desarrollo Mantenimiento Mantenimiento

Componentes probadas y robustasComponentes probadas y robustas