🛡️ 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.