A Orientação a Objetos (OO) é um paradigma de programação que organiza o design de software em torno de "objetos", que contêm dados, na forma de campos, e código, na forma de procedimentos, conhecidos como métodos. Um objeto possui estado (dados) e comportamento (métodos). É uma maneira de modelar o mundo real em código, tornando o software mais modular, flexível e fácil de manter.
Principais Conceitos:
Objetos: Instâncias de classes que combinam dados e comportamento. São as unidades básicas de construção em sistemas OO.
Classes: Modelos ou blueprints para criar objetos. Definem as características (atributos) e comportamentos (métodos) que os objetos da classe terão.
Encapsulamento: Agrupar os dados (atributos) e os métodos que operam nesses dados dentro de uma classe, protegendo os dados de acesso não autorizado e expondo uma interface controlada para interagir com o objeto.
Herança: Mecanismo que permite que uma classe (subclasse ou classe filha) herde atributos e métodos de outra classe (superclasse ou classe pai), promovendo a reutilização de código e a criação de hierarquias de classes.
Polimorfismo: Capacidade de um objeto assumir muitas formas. Permite que objetos de diferentes classes sejam tratados de forma uniforme através de uma interface comum, tornando o código mais genérico e flexível.
Abstração: Processo de simplificar a realidade complexa, modelando classes com base em características e comportamentos relevantes para um determinado contexto, ignorando detalhes irrelevantes.
Benefícios da Programação Orientada a Objetos:
Linguagens de Programação Orientadas a Objetos Populares:
Java, Python, C++, C#, JavaScript (com extensões OO), Ruby, PHP (moderno) entre outras.