La programación orientada a objetos es un método de programación que organiza los programas como colecciones cooperativas de objetos. Los cuatro elementos fundamentales de la POO son la abstracción, encapsulamiento, modularidad y jerarquía. La POO ofrece ventajas como la reutilización de código, la creación de sistemas complejos y el facilitar el mantenimiento, en comparación con la programación estructurada.
1. Programación Orientada a Objetos
Unidad I
1
La programación orientada a objetos (POO) es un método de Implementación en el que
los programas se organizan como colecciones cooperativas de objetos, cada uno de los
cuales representa una instancia de la clase y cuyas clases son miembros de una jerarquía
de clases unidas mediante relaciones de herencia.
En el modelo orientado a objetos hay 4 elementos fundamentales:
Abstracción: Enfatiza detalles significados y suprime detalles que no lo son, al
menos por el momento.
Denota las características esenciales de un objeto que lo distinguen de todos los
demás tipos de objetos y proporciona fronteras conceptuales respecto a la
perspectiva del observador.
Encapsulación: Es el proceso de almacenar en un mismo compartimento, los
elementos de una abstracción que constituyen su estructura y su comportamiento.
Es cuando se protegen los atributos como privados o protegidos; es para
seguridad.
La abstracción y el encapsulamiento son conceptos complementarios; la
abstracción se centra en el comportamiento observable de un objeto, mientras el
encapsulamiento se centra en la implementación que da lugar a este
comportamiento.
Modularidad: Es fragmentar un programa en componentes individuales para
reducir su complejidad en algún grado. Consiste en dividir un programa en
módulos que pueden compilarse separadamente, pero que tienen conexiones con
otros módulos.
Jerarquía: Es una clasificación u ordenación de abstracciones. Las dos jerarquías
más importantes en un sistema complejo son su estructura de clases (jerarquía de
clases) y su estructura de objetos (jerarquía de partes).
La herencia es la jerarquía de clases más importante. Define una relación entre
clases, en la que una clase comparte el comportamiento definida en una o más
clases (lo que se denomina herencia simple o herencia múltiple).
VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON LA
PROGRAMACIÓN ESTRUCTURADA
Ventajas de la POO
Fomenta la reutilización y extensión de
código.
Permite crear sistemas más complejos
Relacionar el sistema al mundo real
Facilita la creación de programas visuales
Permite la construcción de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento de software
Facilita la reutilización
Facilita la interoperabilidad de
aplicaciones
Facilita el desarrollo de elementos
complejos
Ventajas de la programación
estructurada
Los programas son más fáciles de
entender ya que pueden ser leídos en
secuencia
Fácil de comprender lo que hace cada
función
Programas más sencillos y más rápidos
El seguimiento de las fallas se facilita,
debido a la lógica más visible
Los programas quedan mejor
documentados internamente
2. Programación Orientada a Objetos
Unidad I
2
Diferencias de la POO y la Programación Estructurada
La programación estructurada pretende resolver un problema de principio a fin en
una sola estructura de código.
La programación orientada a objetos, resuelve el problema identificando los
actores que tienen participación en el problema identificando también sus
acciones.
CONCEPTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS
Objeto: Es una cosa tangible y/o visible, algo que puede comprenderse intelectualmente.
Es una entidad que tiene un estado (conjunto de propiedades –atributos-) y un
comportamiento (conjunto de operaciones –métodos-). El objeto pertenece a una clase
particular. Es una variable de una clase.
Todos los objetos de una clase dada son idénticos en estructura y comportamiento, pero
tienen identidad única. Los objetos son creados y destruidos en tiempo de ejecución,
residen en el espacio de memoria.
Atributo: Es una característica fundamental de cada objeto de una clase. Definen el
estado de un objeto.
Método: Es una acción que se realiza sobre un objeto para consultar o modificar su
estado. También llamados operaciones o funciones miembro.
Clase: Es la representación de la estructura y comportamiento de un objeto. Es un patrón
para la definición de atributos y métodos para un tipo particular de objetos.
Interfaz: Es el aspecto externo del objeto. La parte visible y accesible para el resto de
objetos. Puede estar formado por uno o varios métodos. No todos los métodos de un
objeto tienen porqué formar parte de la interfaz.
Instancia: Se utiliza para referirse a un objeto que pertenece a una clase concreta.
Herencia: Una clase hereda todos los atributos y operaciones de las clases superiores.
Una clase puede tener sus propios atributos y operaciones adicionales a lo heredado. Una
clase puede modificar los atributos y operaciones heredadas.
Mensaje: Comando o petición que se le envía a otro objeto.
Polimorfismo: Permite implementar múltiples formas de un mismo método, dependiendo
de cada una de ellas de la clase sobre la que se realice la implementación. Es la
posibilidad de definir múltiples clases con funcionalidad diferente pero con métodos o
propiedades denominados de forma idéntica. Un objeto se comporta de diferentes formas
como si perteneciera a otra clase.
UML: Lenguaje de Modelado Unificado. Es un lenguaje para modelar sistemas.
Diagrama de Clases: Representa las clases que componen el sistema y sus relaciones
estáticas.