Cristian Felipe Sanchez
1. Programación Orientada a Objetos (POO): Paradigma de programación que
se basa en la creación de "objetos" que contienen datos y métodos. Estos
objetos interactúan entre sí a través de mensajes, lo que permite una
modelización más cercana a los problemas del mundo real.
2. Ventajas de la POO:
o Reutilización de código gracias a la modularidad y la herencia.
o Facilidad para el mantenimiento y la actualización del software.
o Abstracción de los detalles de implementación, lo que facilita la
comprensión y el diseño.
o Encapsulamiento de los datos, lo que mejora la seguridad y la integridad
del sistema.
o Flexibilidad y extensibilidad del código.
3. Evolución de la POO: Desde su origen en los años 60 con Simula y Smalltalk,
la POO ha evolucionado con lenguajes como C++, Java y Python,
incorporando conceptos como la herencia múltiple, la interfaz, el polimorfismo y
las clases abstractas, entre otros.
4. Abstracción: Proceso de identificar los aspectos esenciales de un objeto y
representarlos de manera simplificada, ignorando los detalles irrelevantes para
el contexto.
5. Encapsulamiento: Ocultamiento de los detalles de implementación de un
objeto, permitiendo el acceso controlado a sus métodos y atributos, lo que
promueve la modularidad y la seguridad del sistema.
6. Modulación: División del código en módulos independientes y cohesivos, cada
uno responsable de una funcionalidad específica, lo que facilita el desarrollo, la
depuración y el mantenimiento del software.
7. Jerarquía: Organización de las clases y objetos en una estructura de árbol,
donde las clases más generales se encuentran en niveles superiores
(superclases) y las más específicas en niveles inferiores (subclases),
facilitando la reutilización de código y la abstracción.
8. Polimorfismo: Capacidad de un objeto de tomar múltiples formas, lo que
permite tratar objetos de diferentes clases de manera uniforme mediante el uso
de interfaces comunes o métodos con el mismo nombre pero con
implementaciones específicas para cada clase.
9. Herencia: Mecanismo mediante el cual una clase (subclase) puede heredar
atributos y métodos de otra clase (superclase), lo que facilita la reutilización de
código y la organización jerárquica de las clases en una jerarquía de herencia.
10. Tipo de herencia: Hay varios tipos de herencia y son: la herencia simple, la
herencia múltiple, la herencia de interfaz, etc. Cada tipo de herencia tiene sus
propias características y se utiliza según las necesidades del diseño de
software.