Conceptos Clave de Programación Lógica y Orientada a Objetos
Clasificado en Informática
Escrito el en español con un tamaño de 6,38 KB
Programación Lógica: Fundamentos y Conceptos Clave
La programación lógica es un paradigma de programación donde un programa es un conjunto de fórmulas para resolver un problema mediante la computación.
Características del Programa Lógico
- Especificación: Define qué debe computarse.
- Instrucciones: Se basan en fórmulas lógicas.
- Modelo de Cómputo: Utiliza la inferencia lógica.
- Variables: Son de tipo lógico.
Principios Fundamentales
- El programador especifica qué debe computarse en lugar de cómo debe realizarse.
- El componente lógico determina el significado del programa, mientras que el componente de control afecta su eficiencia.
- Se basa en la lógica de predicados.
- Proporciona las especificaciones de una solución y permite que la computadora deduzca la secuencia de acciones.
Conceptos Clave en Programación Lógica
- Relaciones: Son un conjunto de tuplas definidas por el programador.
- Reglas y Hechos: Conjunto de instrucciones que deben ser ciertas.
- Unificación: Proceso mediante el cual se asignan valores a variables cuyo valor no se conoce.
- Tipos de Datos Primitivos: Variables, constantes, enteros, reales y caracteres.
- Tipos de Datos Estructurados: Listas u objetos.
- Functor: Definen objetos formados por componentes.
Reglas de Unificación
- Una variable no instanciada emparejará con cualquier objeto y, como resultado, ese objeto será señalado por la variable.
- Una constante, átomo o entero solo emparejará consigo misma.
- Una estructura emparejará con otra estructura con el mismo functor.
Cortes (Cut)
- Si la primera pregunta tiene éxito y la segunda no, se hace un retroceso para probar con otro valor en el patrón.
Programación Orientada a Objetos (POO): Pilares y Aplicaciones
La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en el concepto de "objetos", los cuales pueden contener datos en forma de campos (atributos) y código en forma de procedimientos (métodos).
Conceptos Fundamentales de POO
- Polimorfismo: Capacidad de un objeto de tomar muchas formas.
- Herencia: Mecanismo que permite a una clase heredar propiedades y comportamientos de otra clase.
Ventajas y Características de la POO
- Comprensión: Su funcionamiento es conceptualmente simple.
- Flexibilidad: Permite lograr cambios automáticos y adaptabilidad.
- Estabilidad: Contribuye a minimizar posibles fallas en el sistema.
- Reusabilidad: Facilita la reutilización de código mediante objetos ya definidos.
- Confiabilidad: Los sistemas basados en POO suelen ser más fiables debido a su estructura y estabilidad.
Características Clave de la POO
- Abstracción: Oculta los detalles de implementación y muestra solo la funcionalidad esencial.
- Libera automáticamente memoria (característica presente en muchos lenguajes POO, como Java o Python, a través de recolectores de basura).
Definiciones Esenciales en POO
- Clase: Es una plantilla o molde para crear objetos. En muchos lenguajes, todo tipo de dato es una clase, excepto los tipos primitivos.
- Herencia: Es el mecanismo de extensión de una clase, permitiendo la creación de jerarquías.
- Instancias: Son representaciones concretas de una clase; es decir, los objetos creados a partir de una clase.
- Encapsulamiento: Mecanismo que permite agrupar datos y métodos que operan sobre esos datos dentro de una unidad (objeto), controlando el acceso a ellos.
- Clase Interna: Una clase que se anida dentro de otra clase.
- Clase Anónima: Clases que no tienen nombre y cuya definición se coloca directamente al crear un objeto de ellas.
- Polimorfismo: Define métodos con la misma referencia (nombre) en diferentes niveles de la jerarquía de clases (sobrescritura) o con diferentes firmas en la misma clase (sobrecarga).
Beneficios de la Herencia
- Facilidad de modificación y mantenimiento del código.
- Evita la duplicación de código.
- Establece una jerarquía clara entre las clases.
- Ayuda a evitar grandes volúmenes de código repetitivo.
Modificadores y Conceptos Avanzados (Ej. Java)
- Static: Permite que un miembro (variable o método) pertenezca a la clase en sí, en lugar de a una instancia específica, referenciando a memoria de forma única.
- Abstract: Las clases abstract son clases padre que no pueden ser instanciadas directamente, pero pueden ser extendidas. Sus métodos abstract deben ser implementados por las subclases concretas.
- Final:
- Una clase final no se puede extender.
- Un método final no se puede anular (sobrescribir).
- Una variable final es una constante (su valor no puede cambiar una vez asignado).
Interfaces
- Una interfaz es una "clase" especial que se utiliza para describir el comportamiento de una subclase sin proporcionar la implementación.
- Una clase "extiende" (implementa) una interfaz para heredar su contrato.
- Define un conjunto de métodos, pero no sus implementaciones (antes de Java 8/9, ahora pueden tener métodos
default
ystatic
). - Contiene datos constantes (implícitamente
public static final
) y métodos solo declarados (implícitamentepublic abstract
). - Todos sus miembros son públicos.
- Una clase puede implementar varias interfaces, lo que permite la herencia múltiple de comportamiento.
- La clase que implementa una interfaz debe proporcionar la implementación para todos sus métodos abstractos o ser declarada como abstracta.