Programação Orientada à Objetos (POO)
Por volta de 3 min
Programação Orientada à Objetos (POO)
1. Definição de POO:
- A Programação Orientada a Objetos (POO) é um paradigma de programação que organiza o código em torno de objetos, que podem conter dados (atributos) e códigos (métodos).
2. Quatro Pilares da POO:
- Encapsulamento: Agrupa dados (atributos) e métodos em uma unidade chamada objeto, ocultando os detalhes internos de implementação.
class Pessoa {
#idade; // Encapsulado
constructor(idade) {
this.#idade = idade;
}
obterIdade() {
return this.#idade;
}
}
- Herança: Permite que uma classe herde propriedades e métodos de outra, promovendo a reutilização de código.
class Animal {
comer() {
console.log("Comendo...");
}
}
class Cachorro extends Animal {
latir() {
console.log("Latindo...");
}
}
- Polimorfismo: Permite que objetos de diferentes classes sejam tratados como objetos de uma classe comum.
class Forma {
calcularArea() {
console.log("Área não especificada para esta forma.");
}
}
class Quadrado extends Forma {
calcularArea() {
console.log("Área do quadrado...");
}
}
class Circulo extends Forma {
calcularArea() {
console.log("Área do círculo...");
}
}
- Abstração: Simplifica complexidades do mundo real, fornecendo uma representação essencial.
class Veiculo {
constructor(marca) {
this.marca = marca;
}
acelerar() {
console.log("Acelerando...");
}
}
class Carro extends Veiculo {
constructor(marca, modelo) {
super(marca);
this.modelo = modelo;
}
acelerar() {
console.log(`Acelerando o ${this.marca} ${this.modelo}...`);
}
}
3. Objetos em JavaScript:
- Em JavaScript, objetos podem ser criados usando a notação de objeto literal
{}
ou por meio de construtores de classes.
// Objeto Literal
let pessoa = {
nome: "Maria",
idade: 30,
saudacao: function() {
console.log(`Olá, meu nome é ${this.nome} e tenho ${this.idade} anos.`);
}
};
// Usando Classe
class Pessoa {
constructor(nome, idade) {
this.nome = nome;
this.idade = idade;
}
saudacao() {
console.log(`Olá, meu nome é ${this.nome} e tenho ${this.idade} anos.`);
}
}
4. Modificadores de Acesso em JavaScript:
- No JavaScript, até a versão ES2021, os modificadores de acesso são simulados usando convenções de nomenclatura (público, privado, protegido).
class Exemplo {
propPublica = "Variável pública";
#propPrivada = "Variável privada";
_propProtegida = "Variável protegida";
mostrarPropriedades() {
console.log(this.propPublica); // Pública
console.log(this.#propPrivada); // Privada
console.log(this._propProtegida); // Protegida
}
}
Conclusão:
A Programação Orientada a Objetos fornece uma abordagem poderosa e organizada para o desenvolvimento de software, enfatizando a modularidade, reutilização e encapsulamento. A implementação em JavaScript pode ser realizada por meio de objetos literais ou classes, aproveitando os conceitos fundamentais da POO. A introdução de modificadores de acesso em versões mais recentes do JavaScript, como TypeScript, adiciona uma camada adicional de encapsulamento e segurança ao código.