P.o.o.

19
PROGRAMACIÓN ORIENTADA A OBJETOS Pérez Tejeda Amairani de J. Rodriguez Ramirez Juan Alberto

Transcript of P.o.o.

PROGRAMACIÓN ORIENTADA A OBJETOS

Pérez Tejeda Amairani de J.

Rodriguez Ramirez Juan Alberto

Programación orientada a objetos:

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acopla miento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Principios de la POOObjetosClaseAbstracciónCohesiónEncapsulaciónHerenciaClases abstractasInterfacesPolimorfismoAcoplamientoAsociación de objetos

ComposiciónMiembro DATOFunciones miembro

Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.

Objeto:

EJEMPLO:Tomemos el objeto Automóvil.Un automóvil es un objeto bastante pesado que tiene un conjunto de propiedades como su identificación (placa), color, marca, modelo, accesorios, etc.

CLASE:

Es una colección o conjunto de objetos que comparten características entre si, tanto una clase como un objeto (derivado de la misma) contienen tres aspectos fundamentales que nos permiten clasificarlos: Atributos: son las características especificas. Métodos: acciones que realiza, conductas. Eventos: Reacción o la capacidad de relacionarse con otros objetos

Abstracción:

Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar Comportamientos comunes para definir nuevos tipos de entidades en el mundo real.

Cohesión:

Cuando hablamos de cohesión en POO, hablamos de que tanto se enfoca o se compromete una parte llamémoslo modulo (componente o clase),la cohesión seria la medida; en que se compromete un modulo con respecto a una sola tarea o aun solo proceso, entre mayor cohesión tenga un modulo en su operación, mejor será operando, mas fácil será de programar y de reparar.

Ejemplo: En la oración; *Antonio maneja rápido para llegar en menos tiempo.Clase; AntonioAtributos; Atento, concentrado, bueno conduciendo.Métodos; Encender carro, Manejar, Apagar carro.podríamos decir que Antonio tiene cohesión, ya que se dedica únicamente a manejar, el maneja rápidamente parra llegar mas rápido a su destino.

Encapsulamiento:Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Herencia:

(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.

Este Tipo de Clases nos permiten crear “método generales”, que recrean un comportamiento común, pero sin especificar cómo lo hacen. A nivel de  código tienen por particularidad que algunos de sus métodos no tienen “cuerpo de declaración”, ¿qué quiere decir esto? no tienen las llaves { } ni código dentro de ellos y deben estar precedidos por la palabra clave abstract. Si una clases contiene uno o más métodos abstractos está clase debe ser abstracta. 

Clases Abstractas:

Ejemplo

Las interfaces 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*

Interfaces:

Interfaz grafica

La construcción de una Interfaz es la siguiente:

public Interfaz NombreInterfaz{

//Código}

Es la capacidad que tiene los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación

Hay dos tipos: DinámicoEs el que el código no incluye ningún tipo de especificación sobre el tipo de datos

Estático Es el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de ser utilizados.

Polimorfismo:

La forma de utilizarlo, por ejemplo en java, sería: Superclase sup = new (Subclase);

El acoplamiento débil (Loose coupling) se refiere a reducir al mínimo la dependencia de un objeto en otros objetos. • En otras palabras, puede cambiar la implementación de una clase sin afectar a otras clases. • Estas propiedades hacen que el código extensible y fácil de mantener.Por ejemplo, considere dos clases, A y B. Si estas no se utilizan entre si (ninguna de ellas crea una instancia de la otra o invoca un método en el otra), no están acopladas.

Acoplamiento:

Si A usa a B (por ejemplo, crea una instancia de B), pero B no usa A, entonces son débilmente acoplados (loosely coupled).

Si ambas A y B se utilizan entre si, entonces están estrechamente acopladas (tightly coupled).

Asociación:

La asociación se podría definir como 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”, debe tener sentido:

El ingeniero usa una computadora

El cliente usa tarjeta de crédito.

Cómo implementar Asociación

Existen 2 tipos:

•Diagrama de objetos•Diagrama de clases

Composición:

En caso contrario, la composición es un tipo de relación dependiente en dónde un objeto más complejo es conformado por objetos más pequeños. En esta situación, la frase “Tiene un”, debe tener sentido:El auto tiene llantas

La portátil tiene un teclado.Cómo implementar Asociación

Miembro DATO:

Los valores de los atributos se guardan en los miembros dato o variables de instancia.

Los nombres de dichas variables inician por letra minúscula.

Las clases pueden contener datos y funciones. Estas funciones se conocen como “funciones miembro”.

Cualquier función no estática declarada dentro de una declaración de clase se considera una función miembro y se llama usando operadores de la selección de miembro (. y –>). Al llamar a funciones miembro desde otras funciones miembro de la misma clase, se puede omitir el objeto y el operador de selección de miembro. Por ejemplo:

Funciones miembro