Pular para o conteúdo

Programação Orientada à Objetos (POO)

Klayton JúniorPor 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.