Junior
Fala sobre os modificadores de acesso em Java.
sobes.tech IA
Resposta da IA
Os modificadores de acesso controlam a visibilidade das classes, membros da classe (campos, métodos, construtores) em Java.
Existem quatro modificadores de acesso:
publicprotecteddefault(sem modificador)private
A sua visibilidade em diferentes contextos:
| Modificador | Dentro da classe | Dentro do pacote | Em uma subclasse (em qualquer pacote) | Em todo o lado |
|---|---|---|---|---|
private |
Sim | Não | Não | Não |
default |
Sim | Sim | Não | Não |
protected |
Sim | Sim | Sim | Não |
public |
Sim | Sim | Sim | Sim |
Exemplos de uso:
public class Parent {
private int privateField; // Acesso apenas dentro da classe Parent
int defaultField; // Acesso dentro do pacote
protected int protectedField; // Acesso dentro do pacote e em subclasses
public int publicField; // Acesso em todo o lado
private void privateMethod() {} // Acesso apenas dentro da classe Parent
void defaultMethod() {} // Acesso dentro do pacote
protected void protectedMethod() {} // Acesso dentro do pacote e em subclasses
public void publicMethod() {} // Acesso em todo o lado
}
package another_package;
import some_package.Parent;
public class Child extends Parent {
void accessFields() {
// privateField = 10; // Erro: privado
defaultField = 20; // Erro: default (em outro pacote)
protectedField = 30; // Acesso: protected (em subclasse)
publicField = 40; // Acesso: público
}
void accessMethods() {
// privateMethod(); // Erro: privado
// defaultMethod(); // Erro: default (em outro pacote)
protectedMethod(); // Acesso: protected (em subclasse)
publicMethod(); // Acesso: público
}
}
Os modificadores são usados para encapsulação e gestão da API das classes.