Qual é a diferença entre modificadores public, default, protected e private?
Os modificadores de acesso (public, default, protected e private) são utilizados para definir o nível de acesso aos membros (métodos e atributos) de uma classe em Java. A diferença entre eles é a seguinte:
- public: o membro pode ser acessado de qualquer lugar, ou seja, tanto de dentro da classe em que está definido, como de outras classes que a utilizam. Por exemplo:
public class Exemplo {
public int numeroPublico;
public void metodoPublico() {
// código aqui
}
}
- default: também chamado de acesso de pacote, é o modificador de acesso padrão quando nenhum é especificado. Nesse caso, o membro é acessível apenas por classes que estejam no mesmo pacote. Não é acessível por classes de pacotes diferentes. Por exemplo:
class Exemplo {
int numeroDefault;
void metodoDefault() {
// código aqui
}
}
- protected: o membro é acessível por classes do mesmo pacote e também por subclasses, mesmo que estejam em pacotes diferentes. Por exemplo:
public class Exemplo {
protected int numeroProtegido;
protected void metodoProtegido() {
// código aqui
}
}
- private: o membro só pode ser acessado dentro da própria classe em que está definido. Não é acessível por outras classes, nem mesmo por subclasses. Por exemplo:
public class Exemplo {
private int numeroPrivado;
private void metodoPrivado() {
// código aqui
}
}
É importante notar que esses modificadores de acesso são essenciais para manter a encapsulação e controle de acesso aos membros de uma classe, garantindo a segurança e organização do código.