Certificação SCJP – Modificadores – Post 006

Modificadores

Os modificadores vistos em breve são validos para membros de classe, sendo estes, variáveis de instancia e métodos.

Modificadores referentes a controle de acesso: public, protected, default, private.

public
Qualquer membro que possui modificador de acesso public pode ser acessado por qualquer outra classe, independente do pacote.

protected
Um membro protected só pode ser acessado se a classe estiver no mesmo pacote, ou por meio de herança, independente do pacote. Em outras palavras, nenhuma classe que não pertencer ao mesmo pacote da classe com membros protected conseguirá acessá-los, amenos que ocorra herança entre as classes.

default
Os membros default são bastante semelhantes ao protect, mas aqui não existem exceções, uma classe que estiver em outro pacote não tem acesso a membros default nem mesmo por herança.

private
O modificador de acesso private é justamente o oposto do modificador public, ou seja, se um membro for declarado como private então este membro não pode ser acessado por outras classes. Os membros private não podem ser vistos nem mesmo por herança, em outras palavras, se uma super classe possuir membros private a sub classe não os possuirá, sendo assim mesmo que um método declarado na subclasse possua um mesmo nome de um outro da super classe isso não significa sobrescrita.

Modificadores não referentes a controle de acesso: final, abstract, synchronized, native, strictfp.

final

No caso de variáveis o modificador final indica que o valor de uma variável não poderá ser alterado após a mesma ter sido inicializada, ou seja, é permitido somente uma atribuição neste tipo de variável. Essas variáveis podem ser de instancia, método ou argumento. O método abaixo é totalmente valido, o argumento str deve ser considerado como uma variavel static local:


1 public void meuMetodo(final String str) {}
Java2html


Uma classe declarada como final não pode ser estendida (herdada).
Já os métodos, se forem declarados como final esses não podem ser sobrescritos.

abstract
As declarações abstract são validas somente para classes e métodos e não possuem corpo, ou seja, não possuem implementações. As declarações abstract para métodos possuem um ; (ponto e virgula) ao invés de chaves no final da declaração, como de costume.
Uma classe abstract pode ter métodos não abstracts (podendo ser até mesmo todos não abstract), porem, se uma classe possuir apenas um método abstract, esta classe DEVE ser declarada como abstract.
Um método é marcado como abstract para obrigar as classes que a estenderem a implementarem o método em questão.
Toda classe que estender uma classe abstract DEVE implementar todos os seus métodos, a menos que esta subclasse seja declarada como abstract também.

synchronized
Esta declaração indica que um método só pode ser acessado por um thread de cada vez.e pode ser combinado por qualquer um dos quatro modificadores de acessos citados acima no tópico “Modificadores referentes a controle de acesso”.

native
A declaração native só pode ser usada para métodos e é dependente da plataforma. Assim como métodos abstracts os métodos native DEVEM possuir um ponto e virgula no final da sua declaração, omitindo a implementação.

strictfp
Esta declaração força a utilização do padrão IEEE 754 (não é importante saber este padrão para o exame) com pontos flutuantes e operações com ponto flutuante. È possível declarar uma classe como strictfp ou métodos individuais.

Aqui termina mais um post.
Espero que minhas anotações ajudem mais alguém.
Comentem e complementem este post.
[]’s

Anúncios

Uma ideia sobre “Certificação SCJP – Modificadores – Post 006

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s