1. Objetos :Los objetos son los componentes fundamentales de la programación orientada a objetos. Representan entidades o conceptos del mundo real y encapsulan tanto datos como comportamiento. Cada objeto tiene su propio conjunto único de atributos (miembros de datos) y métodos (funciones miembro) que operan sobre esos atributos. Los objetos interactúan entre sí mediante llamadas a métodos y paso de mensajes.
2. Clases :Las clases son planos o plantillas para crear objetos. Una clase define la estructura y el comportamiento de un conjunto de objetos que comparten características similares. Contiene los atributos y métodos comunes a todos los objetos de esa clase. Las clases ayudan a organizar y gestionar objetos relacionados y proporcionan una manera de crear múltiples instancias (objetos) de la misma clase.
3. Encapsulación :La encapsulación es el mecanismo que agrupa datos y métodos en una sola unidad llamada objeto. Oculta los detalles internos de un objeto del mundo exterior, haciéndolo accesible sólo a través de sus métodos públicos. La encapsulación mejora la seguridad de los datos, promueve la integridad de los datos y permite un mantenimiento y una legibilidad del código más sencillos.
4. Abstracción :La abstracción es el proceso de simplificar un sistema complejo ocultando detalles innecesarios y exponiendo sólo la información esencial. En POO, la abstracción le permite crear clases e interfaces que definen una vista clara y simplificada de un objeto, mientras oculta los detalles de implementación. Esto ayuda a gestionar la complejidad, mejorar la organización del código y promover la reutilización.
5. Herencia :La herencia es la capacidad de crear nuevas clases a partir de clases existentes. Le permite definir nuevas clases que heredan las propiedades y métodos de su clase principal (clase base). Las subclases (clases derivadas) heredan los atributos y métodos de su clase principal y pueden agregar sus propias características y comportamientos adicionales. La herencia promueve la reutilización del código, reduce el código redundante y respalda el concepto de clasificación jerárquica.
6. Polimorfismo :El polimorfismo permite que objetos de diferentes tipos respondan al mismo mensaje de diferentes maneras. Esto se logra mediante la anulación de métodos, donde las subclases proporcionan su propia implementación de métodos heredados de las clases principales. El polimorfismo le permite escribir código que puede interactuar con diferentes objetos de manera uniforme, mejorando la flexibilidad y la mantenibilidad del código.
7. Modularidad :La modularidad es una característica fundamental de la programación orientada a objetos que implica dividir un programa en módulos más pequeños, independientes y reutilizables. Cada módulo encapsula una funcionalidad específica y puede reemplazarse o modificarse fácilmente sin afectar el resto del programa. La modularidad promueve la organización del código, mejora la mantenibilidad y facilita el trabajo en equipo en grandes proyectos de software.
Estos componentes trabajan juntos para crear un paradigma de programación estructurado y flexible que permite el diseño y desarrollo de sistemas de software complejos mediante la creación de objetos reutilizables, modulares y extensibles.