Unidad 1 Programación Orientada a Objetos (Programación III)

26
REPÚBLICA BOLIVARIANA DE VENEZUELA. UNIVERSIDAD PEDAGÓGICA EXPERIMENTAL LIBERTADOR. INSTITUTO DE MEJORAMIENTO PROFESIONAL DEL MAGISTERIO EXTENSIÓN ACADÉMICA PARAGUANÁ. CÁTEDRA: ESTRUCTURA DE DATOS Y PROGRAMACION III TUTOR: RAMÓN LÓPEZ. REALIZADO POR: ANGEL AMAYA C.I: 19.879.742

Transcript of Unidad 1 Programación Orientada a Objetos (Programación III)

REPÚBLICA BOLIVARIANA DE VENEZUELA.

UNIVERSIDAD PEDAGÓGICA EXPERIMENTAL LIBERTADOR.

INSTITUTO DE MEJORAMIENTO PROFESIONAL DEL MAGISTERIO

EXTENSIÓN ACADÉMICA PARAGUANÁ.

CÁTEDRA: ESTRUCTURA DE DATOS Y PROGRAMACION III

TUTOR: RAMÓN LÓPEZ.

REALIZADO POR:

ANGEL AMAYA

C.I: 19.879.742

La programación orientada a objetos no debe confundirse con un lenguajeprogramación orientado a objetos. En la programación convencional losprogramas se dividen en dos componentes: Procedimientos y Datos. Lasestructuras de datos utilizadas en programación son globales o se pasan comoparámetros. En esencia los datos se tratan separadamente de losprocedimientos. En la programación orientada a objetos se combinan los datos ylos procedimientos en una entidad única.

La POO es un paradigma, es otra forma de pensar , es una filosofía única a

diferencia de un Lenguaje de Programación Orientado a Objetos el cual existen

muchos y permiten hacer uso de ese paradigma con el animo de solucionar

problemas reales mediante la abstracción de los diferentes agentes, entidades o

elementos que actúan en el planteamiento de un problema. Podemos decir

también, que este paradigma es una disciplina de diseño de software que facilita

la construcción de sistemas a través de componentes individuales llamados

clases de objetos.

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.

• En el problema planteado se especifican 3 elementos involucrados.Cada elemento posee sus propias características y sus propioscomportamientos. En POO a estos elementos se les conoce bajo elnombre de OBJETOS.

• En POO a las características que identifican a cada objeto se ledenominan ATRIBUTOS y a los comportamientos se les denominanMETODOS.

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.

ELEMENTOS EN LA

POO

En la programación orientada a objetos un programa se divide encomponentes que contienen procedimientos y datos. Cadacomponente se considera un objeto. En otras palabras un objetoes una unidad que contiene datos y las funciones que operansobre esos datos.

• Es una instancia de una clase. Por lo tanto, los objetos hacen usode los Atributos (variables) y Métodos (Funciones yProcedimientos) de su correspondiente Clase.

• Es una variable de tipo clase. Por ejemplo: El objeto «Cesar» esun objeto de tipo Clase: Persona.

• Permiten modelar entidades del mundo real. Por ejemplo: LCDLG pertenece a la clase Televisor. Resumiendo la clase televisorseria:

Tipo. De tipo cadena.Resolución. De tipo cadenaMarca. De tipo cadena.

Emitir_Señal ( )Emitir_Audio ( )Decodificar_Señal (señal_entrada)

METODOS

ATRIBUTOS

• Como se puede observar un objeto a través de su clase estacompuesto por 2 partes: Atributos o propiedades y Métodosque definen el comportamiento de dicho objetos a partir de susatributos.

• Los atributos y los métodos pueden ser o no accedidos desdeafuera dependiendo de la solución a plantear. Por lo generallos atributos siempre se ocultan al exterior y algunos métodosquedan visibles al exterior para convertirse en la interfaz delobjeto. Encapsulamiento.

Tipo. De tipo cadena.Resolución. De tipo cadenaMarca. De tipo cadena.

Emitir_Señal ( )Emitir_Audio ( )Decodificar_Señal (señal_entrada)

METODOS

ATRIBUTOS

La primera tarea a la que se enfrenta un diseñador o programadoren POO es la identificación e los objetos inmersos en el problema asolucionar.

Los objetos generalmente se ubican en las siguientes categorías:

• Cosas Tangibles: Avión, auto, producto, insumo.• Roles : gerente, cliente, vendedor, auxiliar, empleado.• Organizaciones o entidades: Empresa, colegio,

proveedor, EPS.• Cosas intangibles: Vuelos, Servicios, Materias,

programas.

Una CLASE es un tipo de dato definido por el usuario que determina lasestructuras de datos y las operaciones asociadas con ese tipo. Las clases son lasdefiniciones de las propiedades y comportamiento de un tipo de objeto concreto.La instanciación es la lectura de estas definiciones y la creación de un objeto apartir de ellas. Cada vez que se construye un objeto de una clase, se crea unainstancia de esa clase. En general, los términos objetos e instancias de una clasese pueden utilizar indistintamente.

«Una CLASE es una plantilla mediante la cual se crean los diferentes objetosrequeridos para la solución del problema. Los Objetos son instancias de lasclases».

Las clases son a los objetos como los tipos de datos son a las variables.

• Ejemplo: Se puede crear un objeto llamado Cesar. Este objeto es creado apartir de la clase «Persona». Se puede crear otro objeto llamado: Patricia elcual pertenece a la clase «Persona». Significa que a partir de la clase sepueden crear los objetos que se deseen.

• Ejemplo: Se puede crear un objeto llamado LCD LG, el cual pertenece a laclase: Televisor.

DEFINICIÓN DE

CLASE

OTRO EJEMPLO: Se pretende modelar un objeto llamado «CARRO»el cual existe en el mundo real.

• Este objeto tiene unos atributos o variables: Vel_Max, Color,No_chasis, No_puertas, No_llantas, tipo.

• Unos comportamientos y métodos: Acelerar (velocidad), Frenar(velocidad), mover_cambio (No_cambio)…

Vel_max. De tipo decimal.Color. De tipo cadena.No_chasis. De tipo cadena.No_puertas. De tipo entero.No_llantas. De tipo entero.

Acelerar (Velocidad)Frenar (Velocidad)Mover_cambio (No_cambio)Girar_derecha ( )Girar_izquierda ( )

METODOS

ATRIBUTOS

CLASE CARRO

Las clases no se construyen para que trabajen de maneraaislada, la idea es que ellas se puedan relacionar entre sí, demanera que puedan compartir atributos y métodos sinnecesidad de rescribirlos.

La posibilidad de establecer jerarquías entre las clases es unacaracterística que diferencia esencialmente la programaciónorientada a objetos de la programación tradicional, ello debidofundamentalmente a que permite extender y reutilizar el códigoexistente sin tener que rescribirlo cada vez que se necesite.

Los cuatro tipos de relaciones entre clases son:

• RELACIÓN DE HERENCIA

• RELACIÓN DE AGREGACIÓN

• RELACIÓN DE COMPOSICIÓN

• RELACIÓN DE ASOCIACIÓN

Es un tipo de jerarquía de clases, en la que cada subclase

contiene los atributos y métodos de una (herencia simple) o más

superclases (herencia múltiple).

Mediante la herencia las instancias de una clase hija (o

subclase) pueden acceder tanto a los atributos como a los

métodos públicos y protegidos de la clase padre (o superclase).

Cada subclase o clase hija en la jerarquía es siempre una

extensión (esto es, conjunto estrictamente más grande) de la(s)

superclase(s) o clase(s) padre(s) y además incorporar atributos

y métodos propios, que a su vez serán heredados por sus hijas.

Representación:

• En la notación algorítmica: Se coloca el nombre de la

clase padre después de la frase Hereda de del

encabezado de la clase y se usan sus atributos y

métodos públicos o protegidos. Ejemplo: Clase Punto3D

Hereda de Punto2D.

• En el diagrama de clases: La herencia se representa

mediante una relación de generalización/especificación,

que se denota de la siguiente forma:

Es una relación que representa a los objetos compuestos por

otros objetos. Indica Objetos que a su vez están formados por

otros. El objeto en el nivel superior de la jerarquía es el todo y

los que están en los niveles inferiores son sus partes o

componentes.

Representación en el Diagrama de Clase: La relación forma

parte de, no es más que una asociación, que se denota:

Si motor forma parte de carro, la flecha apunta a la clase motor,

y el diamante va pegado a carro. La multiplicidad es el rango

de cardinalidad permitido que puede asumir la asociación, se

denota LI..LS. Se puede usar * en el limite superior para

representar una cantidad ilimitada (ejemplo: 3..*).

Un componente es parte esencial de un elemento. La

relación es más fuerte que el caso de agregación, al punto

que si el componente es eliminado o desaparece, la clase

mayor deja de existir.

Representación en el Diagrama de Clases

La relación de composición, se denota de la siguiente

forma:

Es una asociación que se establece cuando dos clases tienenuna dependencia de utilización, es decir, una clase utilizaatributos y/o métodos de otra para funcionar. Estas dos clasesno necesariamente están en jerarquía, es decir, nonecesariamente una es clase padre de la otra, a diferencia delas otras relaciones de clases.

El ejemplo mas común de esta relación es de objetos que sonutilizados por los humanos para alguna función, como Lápiz (seusa para escribir), tenedor (se usa para comer), silla (se usapara sentarse), etc. Otro ejemplo son los objetos Cajero yCuenta.

El Cajero “usa a” la cuenta para hacer las transacciones deconsulta y retiro y verificar la información del usuario.

Representación en el Diagrama de Clases

La relación de uso, se denota con una dependencia

estereotipada:

Ejemplos:

ABSTRACCIÓN.

ENCAPSULAMIENTO.

MENSAJES.

POLIMORFISMO.

Es el principio de ignorar aquellos aspectos de un fenómenoobservado que no son relevantes, con el objetivo de concentrarse enaquellos que si lo son.

Una abstracción denota las características esenciales de un objeto (datos yoperaciones), que lo distingue de otras clases de objetos. Decidir el conjuntocorrecto de abstracciones de un determinado dominio, es el problemacentral del diseño orientado a objetos. Los mecanismos de abstracción sonusados en el EOO para extraer y definir del medio a modelar, suscaracterísticas y su comportamiento.

• Es una de las principales características a tener en cuenta ya quepermite vislumbrar los diferentes agentes u objetos implicados en unproblema.

• Captar los atributos y métodos que conforman cada objeto y larelación que existen entre ellos.

• Resolver el problema en subproblemas donde cada objeto se hagacargo de cada subproblema.

• La comunicación entre objetos generan la solución general a todo elproblema. (Divide y vencerás).

Es la propiedad del EOO que permite ocultar al mundo exterior larepresentación interna del objeto. Esto quiere decir que el objeto puedeser utilizado, pero los datos esenciales del mismo no son conocidosfuera de él.

La idea central del encapsulamiento es esconder los detalles y mostrar lorelevante. Permite el ocultamiento de la información separando el aspectocorrespondiente a la especificación de la implementación; de esta forma,distingue el "qué hacer" del "cómo hacer". La especificación es visible alusuario, mientras que la implementación se le oculta.

El encapsulamiento en un sistema orientado a objeto se representa en cadaclase u objeto, definiendo sus atributos y métodos con los siguientes modosde acceso:

• Público (+) Atributos o Métodos que son accesibles fuera de la clase.Pueden ser llamados por cualquier clase, aun si no está relacionada conella.

• Privado (-) Atributos o Métodos que solo son accesibles dentro de laimplementación de la clase.

• Protegido (#): Atributos o Métodos que son accesibles para la propiaclase y sus clases hijas (subclases).

Los atributos y los métodos que son públicos constituyen la interfaz de laclase, es decir, lo que el mundo exterior conoce de la misma.

• Un objeto sin comunicación con el mundo exterior no es de utilidad. La idea noes crear islas de objetos si no objetos relacionados.

• Los objetos interactúan entre ellos mediante mensajes.

• Cuando un objeto A quiere que otro objeto B ejecute una de sus funcioneso procedimientos miembro (Métodos de B), el objeto A manda un mensajeal objeto B.

Llevar ( TV )

•Desatornillar ( )

•Diagnosticar ( )

•Reparar ( )

•Entregar ( ) as TV

Entregar ( )

Persona Técnico

•Ver_TV( )

•Escuchar ( )

•Apagar ( )

•Prender ( )

•Llevar (TV)

Ejemplo: Una persona desea llevar su televisor descompuesto para que seaarreglado por un técnico.

Es una propiedad del EOO que permite que un método tenga múltiples

implementaciones, que se seleccionan en base al tipo objeto indicado al solicitar

la ejecución del método.

El polimorfismo operacional o Sobrecarga operacional permite aplicar operaciones

con igual nombre a diferentes clases o están relacionados en términos de inclusión. En

este tipo de polimorfismo, los métodos son interpretados en el contexto del objeto

particular, ya que los métodos con nombres comunes son implementados de diferente

manera dependiendo de cada clase.

Objeto 2function Sumar (a,b)

Sumar = a + b

End Function

Objeto 1Objeto2.sumar (a,b)

Objeto3.sumar

(a,b,c)

Objeto 3function Sumar (a,b,c)

Sumar = a + b + c

End Function

El objeto 1 invoca a dos métodos que

llevan el mismo nombre, pero funcionan

diferente en cada objeto.