No tutorial de hoje abordaremos sobre os niveis de acesso e estrutura de classes em JAVA
Continuando a série de orientação a objetos em Java.
Este tutorial não irá abordar orientação a objeto de uma forma geral, e sim, como se usa a sintaxe da linguagem Java.
Modificador Public
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
Estes atributos e métodos são sempre acessíveis em todos os métodos de todas as classes. Este é o nível menos rígido de encapsulamento, que equivale a não encapsular.
Ex:
public class Carro{
public String modelo;
public void setModelo(String modelo){
this.modelo = modelo;
}
}
Posso utilizar o método setModulo e alterar o atributo modelo de qualquer classe ou instância de um objeto do tipo Carro.
Modificador Protected
Estes atributos e métodos são acessíveis nos métodos da própria classe e suas subclasses, o que será visto em Herança.
public class Carro {
protected String modelo;
protected void setModelo(String modelo) {
this.modelo = modelo;
}
}
class Caminhao extends Carro {
protected void setModelo(String modelo){
super.modelo = modelo;// não da erro
}
}
Posso utilizar o método setModelo e alterar o atributo modelo na própria classe e em qualquer subclasse.
Modificador Private
Estes atributos e métodos são acessíveis somente nos métodos (todos) da própria classe. Este é o nível mais rígido de encapsulamento.
public class Carro {
private String modelo;
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getModelo(){
return this.modelo;
}
}
Agora somente posso utilizar o atributo modelo dentro da própria classe.
Para poder interagir com o atributo eu devo criar os métodos set e get.
O método set irá servir para alterar o valor ou referência do atributo e o método get ira servir para retornar o valor ou referência do atributo.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
E se nenhum modificador não for utilizado?
Então fica o modificador default. Somente as classes do mesmo pacote terão acesso à classe, aos atributos e aos métodos.
Acesse o nosso fórum e esclareça suas dúvidas http://www.forumdev.devbr.net/index.php?showtopic=49
Até a próxima pessoal.
Flávio
| Comentários |
|
|
|||||||||||
Tweet me!