đĄïž 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.






