sábado, 10 de maio de 2014

Modificadores de Acesso - Java

Modificadores de Acesso

Os modificadores de acesso, também conhecidos como qualificadores são a forma de visibilidade das classes, métodos e atributos, ou seja, define quem poderá acessa-los, como por exemplo, se for colocado o qualificador public será visível em todo o projeto, todas as classes e pacotes. Abordaremos os principais, como public, protected, private, default e static. Através dos qualificadores garantiremos as restrições de acesso as informações, garantindo assim segurança e integridade dos dados.

TIPOS DE MODIFICADORES DE ACESSO:

  •  Public:  Através desse modificador, é possível acessar o atributo, a classe ou o método de qualquer pacote, não precisa estar no mesmo. Este modificador é utilizado em variáveis, métodos, construtores e classes.
  • Protected: Quando declaramos com esse qualificador somente é possível acessar o método ou a variável se estiver no mesmo pacote, ou seja, se torna visível pela própria classe, por subclasses e pelas classes do mesmo pacote. No entanto, se for um processo de herança(super e subclasses)  é possível que sejam de pacotes diferentes, desde que a superclasse seja estendida na subclasse. Pode ser utilizado somente em variáveis, métodos e construtores.

  • Private: O que declaramos como private, será visível apenas para a classe em que foi declarado, ou seja, fica restrito a classe. Pode ser utilizado em atributos, métodos e construtores.
  •  Default: Como o próprio nome diz, o acesso é “padrão”, não há especificação de nenhum dos três modificadores de acesso acima citados. Existe outras formas de chama-lo, como friendly, package-private, DEFAULT. O resultado de aplicar o acesso default, é que elementos deste tipo apenas poderão ser acessados por classes do mesmo pacote. Pode ser utilizado em classes, variáveis, métodos e construtores.




MODIFICADOR ASSOCIADO COM A CLASSE:

  • Static: Trata-se de um modificador que indica que o método ou atributo pertence à classe, ou seja, está disponível para acesso diretamente pela classe, mesmo não tendo sido a classe instanciada (criado objeto). Pode ser utilizado em variáveis e métodos.

 

 

Tabela Resumo dos modificadores de acesso:

 


Modelo JavaBeans:

    

 

Bibliografia:

 

Segundo Sérgio Furgeri, “O qualificador da classe indica como a classe (ou outro identificador) pode ser usada por outras classes, isto é, define a sua visibilidade. Existem diversos tipos de qualificador, entre os quais serão citados no momento public e private. O qualificador public indica que o conteúdo da classe pode ser usado livremente por outras classes do mesmo pacote ou de outro pacote, isto é, a classe será visível a todas as classes, estejam elas no mesmo pacote ou não. Na prática, pacote é um diretório: sendo assim, quando usado public, uma classe pode ser usada por classes armazenadas em outros diretórios. Quando uma classe é criada como public, o arquivo Java deve possuir o mesmo nome da classe, observando o uso da caixa (maiúsculas/minúsculas) tanto para o nome da classe como para o nome do arquivo.
O qualificador private indica que o conteúdo da classe é privado e pode ser usado apenas por classes do mesmo pacote, isto é, ela será visível apenas para  as classes localizadas no mesmo diretório. Em breve criaremos ...”
(Furgeri, 2012, p. 106)
Referência Bibliográfica: Furgeri, S. (2012). Java 7 Ensino Didático 2ºEdição. São Paulo: Érica.



Exemplo com enunciado e resolução:

1. Adicione ou altere os modificadores de acesso, de modo que fique de acordo com o modelo java beans.



Resolução





Sites com explicações sobre Modificadores de Acesso:

 

Modificadores Cap2. (Site Javafree.org) 

 

Modificadores de Acesso (Site TI Expert Java - Public, Private e Protected) 

 

Java/Modificadores (Site Wikibooks)

 

Video com explicação sobre Modificadores de Acesso:

 

Exercícios: (Caso preferir, clique aqui para visualizar em pdf !)


1. Conforme o modelo a seguir, responda as questões 1 e 2:

a.    Os atributos nome, dtNascimento e sexo possuem qual qualificador, e quem poderá acessa-los?
b.    Não é possível instanciar o método construtor Aluno na classe CadastroAluno. Por que isso acontece?
c.    Qual o modificador que permite que o atributo idade se referencie a classe, e não ao objeto, na classe CadastroAluno?
d.    Conforme o modelo JavaBeans, os atributos nome, dtNascimento, sexo, os métodos getNome e setNome, e os métodos construtores teriam que ter quais qualificadores?

2. Arrume a classe abaixo de modo que ela compile, e mostre o nome e a idade, como no modelo abaixo: (Crie uma classe teste)





 3. Relacione os modificadores:

1.       Private                                               
2.       Public
3.       Protected
4.       Default
5.       Static

a.  (__) Indica que o método ou atributo pertence à classe.
b.  (__) Permite o acesso de qualquer pacote.
c. (__) É o qualificador padrão, torna o atributo ou método visível a todas as classes do mesmo pacote.
d.  (__) No modelo JavaBeans, esse modificador é utilizado para declarar os   atributos.
e. (__) Permite que todas as classes acessem, contudo, se estiverem no mesmo pacote.


*************************** RESPOSTAS DOS EXERCÍCIOS ***************************

Exercício 1:
a.    Os atributos nome, dtNascimento e sexo possuem qual qualificador, e quem poderá acessa-los?
R: É o default, ele é o modificador padrão, com ele é possível que classes do mesmo pacote acessem esses atributos.
b.    Não é possível instanciar o método construtor Aluno na classe CadastroAluno. Por que isso acontece?
R: Por que ele foi declarado como default na classe Aluno, e esse qualificador permite que apenas as classes do mesmo pacote tenham acesso ao método.
c.    Qual o modificador que permite que o atributo idade se referencie a classe, e não ao objeto, na classe CadastroAluno?
R: O static, por que ele indica que o atributo idade pertence à classe e não ao objeto.
d.    Conforme o modelo JavaBeans, os atributos nome, dtNascimento, sexo, os métodos getNome e setNome, e os métodos construtores teriam que ter quais qualificadores?
R: Os atributos teriam que ser Private. Os métodos setNome e getNome teriam que ser Public. Os métodos construtores públicos.

   Exercício 2:



   Exercício 3:

Alunos:





GLAUCIO g. bEZERRA                                      72157
VITÓRIA ALEXANDRE                                        72037
VIVIAN ALEXANDRE                                          72039
 

2 comentários:

  1. Muito muito bom. Parabéns! Mas quem são os autores?

    ResponderExcluir
    Respostas
    1. Fala Professor ! Já atualizamos o blog com os integrantes do gurpo !
      Desculpa a demora !

      Abs !

      Excluir