Aula 09 - Conceitos de POO 🏢
Bem-vindo à Programação Orientada a Objetos (POO). Nesta aula, mudaremos nossa forma de pensar: de "sequência de ações" para "interação entre objetos".
🧱 Classe vs Objeto
Uma Classe é o molde (blueprint). O Objeto é a instância real criada a partir desse molde.
classDiagram
class Carro {
+string marca
+string modelo
+ligar()
+acelerar()
}
⚙️ Membros da Classe
Atributos (Dados)
São as características do objeto (ex: cor, tamanho, preço).
Métodos (Comportamento)
São as funções que o objeto pode realizar (ex: andar, emitir som, calcular soma).
🛡️ Encapsulamento
É a técnica de esconder os detalhes internos de um objeto e expor apenas o necessário através de uma interface segura.
Modificadores de Acesso:
public: Acessível de qualquer lugar.private: Acessível apenas dentro da própria classe (Padrão para atributos).protected: Acessível pela classe e suas filhas (Herança).
💻 Exemplo Prático: Minha Primeira Classe
#include <iostream>
#include <string>
class ContaBancaria {
private:
std::string titular;
double saldo;
public:
// Método para configurar dados (Setter)
void inicializar(std::string t, double s) {
titular = t;
saldo = s;
}
void depositar(double valor) {
if (valor > 0) saldo += valor;
}
void exibirExtrato() {
std::cout << "Titular: " << titular << " | Saldo: R$ " << saldo << std::endl;
}
};
int main() {
ContaBancaria minhaConta;
minhaConta.inicializar("Ricardo", 1000.00);
minhaConta.depositar(500.50);
minhaConta.exibirExtrato();
return 0;
}
🧠 Conceitos Chave
Por que usar POO?
A POO facilita a manutenção do código, permite o reaproveitamento e torna o desenvolvimento de grandes sistemas muito mais organizado e intuitivo.
Abstração
Não tente modelar tudo! Foque apenas nos atributos e comportamentos que são relevantes para o seu problema atual.
📝 Exercício de Fixação
- Atributos: Crie uma classe
Retangulocom atributos privadoslarguraealtura. - Métodos: Adicione métodos para calcular a
area()e operimetro()do retângulo. - Desafio: Crie uma classe
Alunoque armazene nome e um array de 3 notas. Implemente um método que retorne se o aluno está aprovado.
🚀 Mini-Projeto da Aula
Simulador de Personagem RPG:
Crie uma classe Guerreiro com: Nome, Vida e Força. Implemente métodos para: atacar(Guerreiro &alvo) (que reduz a vida do alvo com base na força) e exibirStatus(). Simule uma batalha simples entre dois objetos guerreiros no main.