Prévia do material em texto
12 Pontos Importantes sobre Programação Orientada a Objetos (POO) ### Conceitos Fundamentais: 1. **Classes e Objetos:** - A classe é como um molde (ou modelo) que define as propriedades e comportamentos. - Os objetos são instâncias dessa classe, ou seja, elementos criados a partir dela. 2. **Encapsulamento:** - Permite esconder os detalhes internos de uma classe e expor apenas o que é necessário. - Usa modificadores de acesso como `public`, `private` e `protected`. 3. **Herança:** - É o mecanismo pelo qual uma classe (subclasse) pode herdar atributos e métodos de outra (superclasse). - Promove o reuso de código e organização. 4. **Polimorfismo:** - Um conceito que permite que objetos de diferentes classes sejam tratados de forma uniforme. - Exemplo: um método pode ter comportamentos diferentes dependendo do tipo do objeto que o chama. 5. **Abstração:** - Consiste em expor apenas os aspectos essenciais de um objeto, escondendo os detalhes desnecessários. - Geralmente implementado com classes abstratas e interfaces. ### Práticas Importantes: 6. **Construtores:** - São métodos especiais usados para inicializar objetos. - Em muitas linguagens, possuem o mesmo nome da classe. 7. **Sobrecarga e Sobrescrita:** - *Sobrecarga:* Múltiplos métodos com o mesmo nome, mas com diferentes parâmetros. - *Sobrescrita:* Quando um método de uma subclasse redefine o método da superclasse. 8. **Composição em vez de Herança:** - Prefira compor objetos (relacionamento "tem um") ao invés de usar herança excessivamente. Isso aumenta a flexibilidade. 9. **Interfaces e Classes Abstratas:** - Interfaces definem contratos que uma classe deve cumprir. - Classes abstratas fornecem uma base comum para subclasses. ### Benefícios da POO: 10. **Modularidade:** - O código é organizado em pequenas partes reutilizáveis (classes), o que facilita a manutenção e a extensão do software. 11. **Reuso de Código:** - Herança e composição ajudam a reutilizar funcionalidades sem precisar reescrever. 12. **Legibilidade e Manutenção:** - O uso de classes, métodos e conceitos como encapsulamento tornam o código mais claro e fácil de entender.