Modificadores de Acesso

Nem sempre é interessante expor seus métodos e atributos para qualquer pessoa que consuma suas classes, por isso existem os modificadores de acesso.

Modificadores de acesso são palavras-chave que garantem níveis de acesso aos atributos, métodos e classes.

Em Java, temos os seguintes modificadores de acesso:

  • Private É o modificador de acesso mais restritivo que existe. Atributos e métodos declarados como private são acessíveis somente pela classe que os declara.
    Em UML, é definido pelo símbolo “-”.
    Métodos e atributos com o modificador private não são herdados.

Exemplo de classe com o atributo nome usando o modificador private.

  • Protected
    É um modificador de acesso um pouco mais permissivo que o private. Atributos e métodos declarados como protected são acessíveis pela classe que os declara, suas subclasses em outros pacotes e outras classes dentro do mesmo pacote.
    Em UML, é definido pelo símbolo “#”.
    Métodos e atributos declarados com o modificador protected numa superclasse devem ser definidos como protected ou public em suas subclasses e nunca private.

Neste exemplo o método definirPeso( )é visível na subclasse “Pessoa Física” e na classe “Diretoria” que está no mesmo pacote.

  • Public Modificador de acesso mais permissivo que existe. Atributos, métodos e classes declarados como public são acessíveis por qualquer classe do Java. Em UML, é definido pelo símbolo “+”.
    Todos os métodos e atributos declarados como public são herdados pelas subclasses.
    Métodos e atributos declarados como public devem se manter public em todas as subclasses.

Neste exemplo, o método getNome() é visível por qualquer outra classe.

  • Default Modificador de acesso padrão, usado quando nenhum for definido. Neste caso os atributos, métodos e classes são visíveis por todas as classes dentro do mesmo pacote.
    Em UML, é definido pelo símbolo “~” (package visibility).

Neste exemplo, o atributo descrição da classe “DIretoria” é visível por todas as classes dentro do mesmo pacote.

Gostou do texto? Então clique no botão Recommend, logo abaixo.
Fazendo isso, você ajuda esta história a ser encontrada por mais pessoas. Seu comentário também é bem-vindo.

Aqui estão os links que me inspiraram e que podem lhe ajudar a descobrir um pouco mais sobre o assunto.

[Java Access Modifiers
Java provides a number of access modifiers to set access levels for classes, variables, methods and constructors. The…tutorialspoint.com](http://www.tutorialspoint.com/java/java_access_modifiers.htm "tutorialspoint.com/java/java_access_modifie..")