La Programación Orientada a Objetos o POO
es un paradigma de programación (modelo de programación) que usa los objetos en
sus interacciones, para diseñar aplicaciones y programas informáticos. La POO reúne
las características de abstracción, encapsulación, herencia, cohesión,
abstracción, polimorfismo y acoplamiento; formando la programación los objetos,
mensajes, clases, instancias y métodos.
Conceptos de características:
*Encapsulación: Se describe la forma de
vincular las operaciones y estados un
objeto particular.
La encapsulación está relacionada con la
ocultación de la información, se define que partes son visibles y que partes
ocultas.
*Herencia: Permite que los objetos sean
creados a partir de otros ya existentes (Métodos y atributos) similares a los
ya existentes.
*Cohesión: Cada módulo del sistema se
refiera a un único proceso o entidad. A mayor cohesión será mas sencillo de
diseñar, programar, probar y mantener. Cuando el diseño es estructurado se
logra que la cohesión sea alta consiguiendo que cada módulo realice una única tarea
trabajando sobre una sola estructura de datos.
*Abstracción: Características esenciales de
un objeto que permiten distinguirlo de los demás.
*Polimorfismo: Es la capacidad que tienen
los objetos de una clase de responder al mismo mensaje o evento en función a
los parámetros utilizados durante su invocación.
Este se divide en dos:
- Dinámico: Es en el que el código no
incluye ningún tipo de especificación sobre el tipo de datos.
- Estático: Es en el que se tiene que
especificar y declarar de uno por uno antes de ser utilizados.
*Acoplamiento: Este mide la relación de un
módulo con los demás. A menor acoplamiento mejor será para diseñar, programar,
probar y mantener.
*Objeto: El objeto consta de un estado y un
comportamiento, que consta de datos almacenados y de tareas que realiza durante
se ejecuta el programa.
*Mensaje: Transmisión de información de un
objeto a otro, el cual tiene dos métodos de enviar el mensaje: llamadas a
métodos y señales (por programación con hilos o distribuidos en una red).
*Clase: La clase es una plantilla que
agrupa el comportamiento (método) y estados (atributos) de los futuros objetos.
*Instancia: Realización específica de una
clase. Es un miembro de una clase que tiene atributos en lugar de variables.
*Método: Conjunto de instrucciones a las
que se les asocia un nombre de modo que si se desea ejecutarlas o
referenciarlas a través de dicho nombre en vez de escribirlas.