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..")