🛡️ Modificadores de acesso no Java (a.k.a. os "porteiros" da programação)
- #Java
- #C#
- #Python
- #JavaScript
Esses caras — public
, private
e protected
— controlam quem pode acessar o quê dentro do seu código. Tipo segurança de balada VIP: só entra quem tá na lista.
🔓 public
– Porta escancarada
Acesso total. Qualquer classe, de qualquer pacote, pode acessar.
Analogia: É tipo uma conta do Instagram aberta. Todo mundo vê o que você posta, até a sua ex, o RH da empresa, e aquele bot russo.
java
CopiarEditar
public class Cachorro {
public String nome;
}
Você pode acessar nome
de qualquer lugar do projeto.
🔒 private
– Modo ninja
Acesso restrito ao máximo. Só a própria classe consegue ver.
Analogia: É o diário com cadeado que você escondia debaixo da cama. Nem a JVM lê sem permissão.
java
CopiarEditar
public class Cachorro {
private String segredoCanino;
}
Se tentar acessar segredoCanino
de fora da classe Cachorro
: erro na sua cara.
🛂 protected
– Meio-termo controlado
Acesso para:
- A mesma classe
- As subclasses (herança)
- As classes do mesmo pacote
Analogia: É tipo um grupo de WhatsApp da família — só entra quem é da família ou quem casou com alguém da família (herança 💍).
java
CopiarEditar
public class Animal {
protected void emitirSom() {
System.out.println("Som genérico");
}
}
Subclasse Cachorro
pode usar emitirSom()
. Classe aleatória fora do pacote? Nem tenta.
⚪ (Sem nada) – Default (ou "package-private")
Se você não colocar nenhum modificador, o acesso é permitido somente dentro do mesmo pacote.
java
CopiarEditar
class Gato {
void miar() {
System.out.println("Miau");
}
}
Essa classe e seu método só são visíveis no pacote onde estão.
📊 Comparativo rapidão
Modificador | Mesmo pacote | Subclasse (outro pacote) |Fora do pacote
public
✅ | ✅ | ✅
protected
✅ | ✅ | ❌
(default) ✅ | ❌ | ❌
private
❌ | ❌ | ❌
💡 Dica de ouro:
Use private
o máximo possível. Quanto menos partes do seu código forem expostas, menos dor de cabeça no futuro. Segurança e manutenção agradecem. Faça seus atributos private
e crie getters/setters
se precisar dar acesso controlado.