O paradigma orientado a objetos é um modelo de programação que organiza dados e comportamentos em "objetos", permitindo uma abordagem modular e reutilizável na construção de software.
- Classes: São modelos ou "blueprints" que definem a estrutura e o comportamento dos objetos.
- Objetos: Instâncias concretas de classes que representam entidades com estado e comportamento.
- Atributos: Variáveis que armazenam o estado dos objetos.
- Métodos: Funções que definem o comportamento dos objetos e manipulam seus atributos.
Encapsulamento é o princípio de ocultar os detalhes internos dos objetos e expor apenas o que é necessário, protegendo o estado interno e promovendo uma interface limpa.
- Construtores: Métodos especiais usados para inicializar objetos quando são criados.
- Destrutores: Métodos especiais utilizados para liberar recursos e limpar antes que o objeto seja destruído.
Herança permite a criação de novas classes a partir de classes existentes, facilitando a reutilização de código e a extensão de funcionalidades.
Polimorfismo é a capacidade de diferentes classes responderem de maneira diferente ao mesmo método, permitindo flexibilidade e substituição de métodos.
Interfaces definem contratos que as classes devem implementar, permitindo a definição de comportamentos comuns e promovendo a flexibilidade e a abstração.
Abstração é o processo de simplificar a complexidade ao esconder detalhes de implementação e focar nas funcionalidades essenciais através de classes e interfaces.
Classes abstratas servem como base para outras classes e definem métodos que devem ser implementados pelas subclasses, sem permitir a instância direta.
Composição é a técnica de construir classes complexas a partir de outras classes, promovendo a modularidade e a reutilização ao incluir objetos como atributos.
Agregação é uma forma especial de composição onde a vida dos objetos agregados não é controlada pela classe agregadora, representando uma relação "tem um".
Associação refere-se à relação entre classes que permite a interação entre objetos, podendo ser unidirecional ou bidirecional, e pode incluir diferentes tipos de multiplicidade.