Os modificadores de Java

Aqui são um divertimento alguns fatos sobre modificadores Java usados ​​em programas Java como projetar Apps Android. A palavra final tem muitos usos em programas Java. Além de ter variáveis ​​finais, você pode ter os seguintes elementos:

  • classe final: Se você declarar uma classe para ser final, ninguém (nem mesmo você) pode estendê-lo.

  • método final: Se você declarar um método para ser final, ninguém (nem mesmo você) pode substituí-lo.

Estes números colocar essas regras em perspectiva. Eles mostram que você não pode estender o Material classe, porque o Material classe é final. E, você não pode substituir o Material classe de incremento método porque isso incremento método é final.

Tentando estender uma classe final.
Tentando estender uma classe final.
Tentando substituir um método final.
Tentando substituir um método final.

Você pode aplicar Java de protegido palavra-chave para os membros de uma classe. este protegido palavra-chave sempre me pareceu um pouco estranho para alguns. No uso comum em Inglês, quando suas posses estão "protegidos", seus bens não são tão disponíveis como eles normalmente.

Mas em Java, quando preceda um campo ou um método com o protegido palavra-chave, você faz esse campo ou método um pouco mais disponíveis do que seria por padrão, como mostrado na figura.

modos de acesso para campos e métodos.
modos de acesso para campos e métodos.

Um membro padrão de uma classe (um membro cuja declaração não contém as palavras público, privado, ou protegido) Pode ser usado por qualquer código no interior do mesmo pacote que essa classe.

A mesma coisa é verdade sobre a protegido membro da classe. Mas, além disso, uma protegido membro é herdado do lado de fora do pacote da classe por qualquer subclasse da classe que contém esse membro protegido.

Hã? O que significa que a última frase dizer, sobre protegido membros? Para tornar as coisas concretas, esta figura mostra a existência despreocupada em que duas classes estão no mesmo pacote. Com ambos Material e Minhas coisas no mesmo pacote, o Minhas coisas classe herda o Material O padrão da classe valor variável eo Material O padrão da classe incremento método.

Duas classes no mesmo pacote.
Duas classes no mesmo pacote.

Se você mover o Material classe para um pacote diferente, Minhas coisas não herda o Material O padrão da classe valor variável ou o Material O padrão da classe incremento método, como mostrado aqui.

As classes em diferentes pacotes.
As classes em diferentes pacotes.

Mas se você ligar valor dentro de protegido variável e você ligar incremento dentro de protegido método, o Minhas coisas classe novamente herda sua classe pai valor variável e incremento método, como mostrado aqui.

Usando o modificador protegido.
Usando o modificador protegido.

Observe mais um detalhe nas figuras. o Minhas coisas classe de incremento método foi alterado de padrão para público. Isso foi feito para evitar ver uma mensagem de pouco interessante erro. Você não pode substituir um método com outro método cujo acesso é mais restritivo do que o método original. Em outras palavras, você não pode substituir um método público com um método particular. Você não pode mesmo substituir um método público com um método padrão.

de acesso padrão do Java é mais restritiva do que o acesso protegido, como mostrado nesta figura. Então você não pode substituir um método protegido com um método padrão.

image6.jpg

Neste exemplo, toda a questão foi evitada pela divulgação pública dos Minhas coisas classe de incremento método. Dessa forma, o incremento método com o tipo menos restritiva do acesso foi substituído.

menu