Está en la página 1de 2

Programación Orientada a Objetos

La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un


paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos
manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada
objeto ofrece una funcionalidad especial.

La modularidad es la capacidad de dividir el problema en pequeñas partes independientes


entre sí, esto va más allá de la encapsulación de un simple procedimiento de la programación
estructurada que hemos visto hasta ahora. Aquí se encapsula un conjunto de operaciones y
datos que tienen mucha relación entre sí formando un módulo.

Un lenguaje basado en objetos nos da la posibilidad de definir objetos y realizar operaciones


sobre ellos y es similar al paradigma de abstracción de datos. La adición de de los conceptos
de de clases y herencia nos hace hablar de lenguajes orientados a objetos. Un objeto es la
instancia de una clase.

Mediante la herencia podemos reutilizar el comportamiento de una clase en la definición de


nuevas clases.

Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten la


agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al
usuario la creación de sus propias bibliotecas.

Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo,


acoplamiento y encapsulamiento.

Los objetos son entidades que tienen un determinado “estado”, “comportamiento (método)” e
“identidad”:

• La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras
palabras, es su identificador (concepto análogo al de identificador de una variable o
una constante).
• Los métodos (comportamiento) y atributos (estado) están estrechamente
relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase
requiere de métodos para poder tratar los atributos con los que cuenta.

Una clase es una plantilla para la creación de objetos de datos según un modelo predefinido.
Las clases se utilizan para representar entidades o conceptos. Cada clase es un modelo que
define un conjunto de variables (el estado), y métodos apropiados para operar con dichos
datos (el comportamiento). Cada objeto creado a partir de la clase se denomina instancia de la
clase.

Las clases son un pilar fundamental de la programación orientada a objetos. Permiten abstraer
los datos y sus operaciones asociadas al modo de una caja negra. Los lenguajes de
programación que soportan clases difieren sutilmente en su soporte para diversas
características relacionadas con clases. La mayoría soportan diversas formas de herencia.
C++ está diseñado para la programación orientada a objetos (POO), y en ese paradigma,
todas las entidades que podemos manejar son objetos. Los punteros en C++ sirven para
señalar objetos, y también para manipularlos.

La OOP tiene tres características básicas que se suelen presentar como Encapsulación,
Polimorfismo y Herencia.

• La encapsulación es un procedimiento por el cual, los datos y las funciones se


encierran en un contenedor llamado objeto, que usamos para aislar ambos elementos
de la manipulación exterior y forzar a que esta se haga de un modo controlado y
validado por nosotros mismos. El mecanismo que C++ utiliza para encapsular estos
objetos se llaman clases.
• Se suele definir el polimorfismo como: Un interface único, múltiples métodos. Y es
algo que reduce la complejidad de los programas de una forma notable. A usar las
funciones u operadores de diferentes maneras dependiendo del tipo de los datos, le
llamamos polimorfismo y cuando redefinimos un operador o función para comportarse
de forma diferente con esos datos, decimos que el operador esta sobrecargado
(Overloaded)- Por ejemplo en C++ podemos sumar números enteros o números float
con el mismo símbolo “+”, y nos parece tan normal, pero en realidad los
procedimientos que se aplican son completamente distintos.
• La herencia es un proceso por el cual un objeto hereda las propiedades y métodos de
otro, sin necesidad de volverlas a definir desde el principio.

También podría gustarte