Os componentes fundamentais da Programação Orientada a Objetos (OOPs) incluem:
1.
Objetos :Os objetos são os blocos de construção fundamentais da OOP. Eles representam entidades ou conceitos do mundo real e encapsulam dados e comportamento. Cada objeto possui seu próprio conjunto exclusivo de atributos (membros de dados) e métodos (funções-membro) que operam nesses atributos. Os objetos interagem entre si por meio de chamadas de métodos e passagem de mensagens.
2.
Aulas :as classes são projetos ou modelos para a criação de objetos. Uma classe define a estrutura e o comportamento de um conjunto de objetos que compartilham características semelhantes. Ele contém os atributos e métodos comuns a todos os objetos dessa classe. As classes ajudam a organizar e gerenciar objetos relacionados e fornecem uma maneira de criar múltiplas instâncias (objetos) da mesma classe.
3.
Encapsulamento :Encapsulamento é o mecanismo que agrupa dados e métodos em uma única unidade chamada objeto. Ele esconde os detalhes internos de um objeto do mundo exterior, tornando-o acessível apenas através de seus métodos públicos. O encapsulamento aumenta a segurança dos dados, promove a integridade dos dados e facilita a manutenção e a legibilidade do código.
4.
Abstração :Abstração é o processo de simplificar um sistema complexo, ocultando detalhes desnecessários e expondo apenas informações essenciais. Em OOPs, a abstração permite criar classes e interfaces que definem uma visão clara e simplificada de um objeto, ao mesmo tempo que oculta os detalhes de implementação. Isso ajuda no gerenciamento da complexidade, melhorando a organização do código e promovendo a reutilização.
5.
Herança :Herança é a capacidade de criar novas classes a partir de classes existentes. Permite definir novas classes que herdam as propriedades e métodos de sua classe pai (classe base). As subclasses (classes derivadas) herdam os atributos e métodos de sua classe pai e podem adicionar seus próprios recursos e comportamentos adicionais. A herança promove a reutilização do código, reduz o código redundante e apoia o conceito de classificação hierárquica.
6.
Polimorfismo :O polimorfismo permite que objetos de tipos diferentes respondam à mesma mensagem de maneiras diferentes. Isto é conseguido através da substituição de métodos, onde as subclasses fornecem sua própria implementação de métodos herdados das classes pai. O polimorfismo permite escrever código que pode interagir com diferentes objetos de maneira uniforme, aumentando a flexibilidade e a capacidade de manutenção do código.
7.
Modularidade :A modularidade é uma característica fundamental dos OOPs que envolve a divisão de um programa em módulos menores, independentes e reutilizáveis. Cada módulo encapsula uma funcionalidade específica e pode ser facilmente substituído ou modificado sem afetar o resto do programa. A modularidade promove a organização do código, melhora a capacidade de manutenção e facilita o trabalho em equipe em grandes projetos de software.
Esses componentes trabalham juntos para criar um paradigma de programação estruturado e flexível que permite o projeto e o desenvolvimento de sistemas de software complexos por meio da criação de objetos reutilizáveis, modulares e extensíveis.