quarta-feira, 17 de outubro de 2012

Modificadores de Acesso a Classes Java


O controle de acesso em Java é divido em quatro controles de acesso (níveis de acesso), mas apenas três modificadores de acesso (public, protect, private). O quarto nível de controle de acesso é o que você obtém quando não usa nenhum dos três modificadores de acesso (default). Toda classe, método e variável de instancia que você declarar tem um controle de acesso, porem no caso de classes utilizamos apenas os tipos default e public.

Acesso a classes

Quando dizemos que uma determinada classe A tem acesso a outra classe B isso que dizer que a classe A pode:
  • Criar uma instancia da classe B.
  • Estender a classe B.
  • Acessar métodos e variáveis da classe B dependendo do controle de acesso desses métodos e variáveis.
As classes só podem possuir ou acesso default ou publico:
  • Para declarar uma classe como default basta não especificar o modificador, está classe só poderá ser acessada por classes no mesmo pacote.
    • class Cachorro{...}
  • Para declarar uma classe como publica digite a palavra chave public antes do nome da classe, com isso todas as classe conseguem acessar está classe. Se a classe publica estiver em um pacote diferente da classe que tenta acessa-la não será necessário import da classe antes de acessa-la.
    • public class Cachorro{...}
Existem outros modificadores de classes que não são referentes a acesso esses modificadores de acesso existem e adição aos controladores de acesso.
  • final a palavra-chave final significa que a classe em questão não pode ser sub-classificada ou seja nenhuma outra classe pode estender(herdar) uma classe final. Você só deve marcar uma classe como final se tiver certeza que nunca os métodos dessa classe deverão ser substituído(Eu nunca criei uma classe como final).
  • abstract a palavra-chave abstract significa que a classe não pode ser instanciada(new) nunca o único propósito de uma classe abstrata é ser estendida. As classes abstratas são muito utilizadas para o polimorfismo e dão um maior grau de flexibilidade e extensibilidade.
Não é possível é possível marcar uma classe como abstract e final ao mesmo tempo, pois enquanto a classe final não pode ser sub-classificada, a classe abstract deve ser classificada.

Para concluir criei um post Modificadores de Acesso na pratica, que mostra como estes conceitos funcionam na pratica.

Para a declaração de modificadores de acesso de métodos e variáveis veja o post Modificadores de Acesso á Métodos e Variáveis
Qualquer problema, duvida, comentário ou caso tenham algo a acrescentar fiquem a vontade.

Grato pela atenção,
Att,
Diego

Nenhum comentário:

Postar um comentário