📊 Capítulo 05: Classes, Construtores & Encapsulamento
Especialização em Sistemas com Java
🗺️ Encapsulamento e Modificadores de Acesso em Java
flowchart TD
ROOT["Modificadores de Acesso"]
--> PUB["public (Acessível por qualquer classe de qualquer pacote)"]
ROOT --> PROT["protected (Acessível no mesmo pacote e por subclasses)"]
ROOT --> DEF["package-private / default (Sem palavra-chave / Apenas no mesmo pacote)"]
ROOT --> PRIV["private (Acessível EXCLUSIVAMENTE dentro da própria classe!)"]
style ROOT fill:#ede7f6,stroke:#512da8,stroke-width:2px
style PUB fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style PROT fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
style DEF fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style PRIV fill:#ffebee,stroke:#d32f2f,stroke-width:2px
🎯 Slide 1: A Tríade da POO: Estado, Comportamento e Identidade
-
Classe: O molde conceitual que define atributos e métodos.
- Objeto: A instância concreta alocada na memória Heap da JVM.
🎯 Slide 2: Construtores e Sobrecarga (Overloading)
public class ContaBancaria {
private final String numero;
private String titular;
private double saldo;
// Construtor principal:
public ContaBancaria(String numero, String titular, double depositoInicial) {
this.numero = numero;
this.titular = titular;
depositar(depositoInicial);
}
// Sobrecarga de construtor (depósito opcional):
public ContaBancaria(String numero, String titular) {
this(numero, titular, 0.0);
}
}
🎯 Slide 3: Proteção de Invariantes com Encapsulamento
- Torne todos os atributos
private. - Nunca crie setters cegos para regras de negócio críticas (ex.: o saldo só deve mudar via métodos de domínio
depositar()esacar()).
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim