Modificadores de acesso do Java

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (6)  (0)

Este artigo apresenta os modificadores de acesso para o Java: NATIVE, STATIC, SYNCHRONIZED e VOLATILE e exemplifica por meio de códigos as peculiaridades de cada um.

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Conteúdo sobre boas práticas.

Do que se trata o artigo
Este artigo apresenta os modificadores de acesso FINAL, NATIVE, STATIC, SYNCHRONIZED e VOLATILE e exemplifica por meio de códigos as peculiaridades de cada um.

Em que situação o tema é útil
O bom uso dos modificadores de acesso FINAL, NATIVE, STATIC, SYNCHRONIZED e VOLATILE é importante para definir uma implementação coerente com as especificações de projeto, determinando como serão os acessos a classes, métodos e/ou variáveis. Desse modo, pode-se concretizar conceitos como, por exemplo, o encapsulamento e a herança do paradigma orientado a objetos.

Entendendo os modificadores de acesso Java
Este artigo apresentará os modificadores de acesso FINAL, NATIVE, STATIC, SYNCHRONIZED e VOLATILE da linguagem Java , os quais permitem adequar as implementações a uma diversidade de propósitos como, por exemplo, auxiliar na adequação do código a um determinado padrão de projeto e também no reaproveitamento de código legado de outras linguagens.

Os modificadores de acesso da linguagem Java têm o objetivo de tornar as implementações mais adequadas a uma diversidade de propósitos. Uma característica geral dos modificadores de acesso é que são definidos sempre em palavras minúsculas, tais como FINAL, NATIVE, STATIC, SYNCHRONIZED e VOLATILE, os quais serão tratados neste artigo.

Por exemplo, o uso do especificador FINAL pode conferir segurança ao código e maior velocidade de execução. O especificador STATIC confere economia de memória e a possibilidade de troca de informações entre os objetos da classe, entre outras funcionalidades que serão apresentadas mais adiante neste artigo.

Além disso, é importante ter em mente que o uso de um modificador pode ocorrer em conjunto com outro e, o uso em conjunto de dois modificadores de acesso pode gerar características próprias, as quais não eram presentes no uso individual dos modificadores de acesso.

O uso do modificador STATIC em um atributo de classe, por exemplo, torna esse atributo possível de ser inicializado em qualquer parte da classe, mas quando recebe um valor, ele é compartilhado com todos os objetos da classe. Isso significa que os atributos estáticos de uma classe são compartilhados por todas as instâncias dessa classe. O modificador FINAL por sua vez, torna o atributo da classe uma constante e, só pode ser inicializado uma única vez, ou diretamente na declaração da classe ou no método construtor. Quando um atributo recebe os modificadores de acesso STATIC e FINAL, sua inicialização apresenta uma alteração distinta, o atributo não poderá mais ser inicializado no método construtor, sendo possível sua inicialização apenas diretamente na declaração do atributo ou no bloco de inicialização estático.

Logo, é importante conhecer as características e particularidades da aplicação dos modificadores de acesso de forma que eles sejam utilizados corretamente e as classes tenham um comportamento esperado. Com base nisso, este artigo trata dos modificadores de acesso FINAL, NATIVE, STATIC, SYNCHRONIZED e VOLATILE, suas características, formas de uso e exemplos.

Modificador FINAL

Inicialmente, iremos tratar do modificador FINAL, o qual pode ser aplicado em classes, métodos e atributos. Este modificador atribui uma propriedade específica ao membro (atributo ou método) que o recebe, ou mesmo à própria classe.

No caso das classes, o modificador FINAL confere terminalidade ao processo de herança, isto é, uma classe ao receber o modificador FINAL representa que chegou ao nível máximo de especialização e não poderá mais ser especializada. Um exemplo clássico de classe FINAL é a java.lang.String. A classe String, por se tratar de um tipo de dado, foi definida como uma classe FINAL. Outro motivo para o uso do modificador FINAL é a segurança, dado que quando a classe for identificada como sendo a String, se trata da classe java.lang.String propriamente dita e não de uma possível classe herdeira, a qual pode ter sofrido alterações e apresentar funcionalidades alteradas.

Por sua vez, quando aplicado aos métodos, o modificador FINAL garante que este não será sobrescrito, o que implica que o método declarado como FINAL terá o seu protótipo mantido tal qual foi definido e, quando for chamado por um dos objetos da classe (ou de classes herdeiras), seu código é que será executado. Dessa forma, nenhuma classe herdeira será capaz de sobrescrever um método definido como FINAL.

Essa propriedade confere segurança ao código implementado, evitando a programação de subclasses que poderiam ter o mesmo protótipo do método, mas com implementações diferentes. Mais especificamente, imagine que estamos tratando de um método que confere a autenticação de usuários do sistema. Se este método for sobrescrito por um código malicioso em alguma classe herdeira, poderia ser criada uma quebra de segurança na autenticação, conferindo acesso a usuários não autorizados. Outra vantagem é o desempenho de execução, dado que as chamadas a métodos "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?