Como dito anteriormente, uma vantagem do encapsulamento é que ele protege o acesso direto aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe.
Tipos de modificadore de acesso:
- Se um atributo, método, construtor ou uma classe for declarado public, ele poderá ser utilizado em qualquer lugar.
- Se um atributo, método ou construtor for declarado private, ele só poderá ser utilizado (referenciado) na definição da classe onde o mesmo é definido.
- Se um atributo, método ou construtor for declarado protected, ele só poderá ser utilizado no pacote onde o mesmo é definido ou na definição de uma subclasse da classe onde o mesmo é definido.
- Se um atributo, método, construtor ou uma classe não for declarado com um dos qualificadores discutidos acima, ele só poderá ser utilizado no pacote onde o mesmo é definido.
Modificador/Acesso | própria classe | mesmo pacote | subclasse em outro pacote | todos restantes |
public | SIM | SIM | SIM | SIM |
protected | SIM | SIM | SIM | NÃO |
default (sem modificador) | SIM | SIM | NÃO | NÃO |
private | SIM | NÃO | NÃO | NÃO |
Nenhum comentário:
Postar um comentário