Sobes.tech
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:

  • public
  • protected
  • default (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.