Cursos / Informática para Internet / Programação Orientada a Objetos / Aula
Codificar em OO usando o encapsulamento nada mais é que aplicar os modificadores de acesso às classes.
Vamos ver como está a nossa classe Agenda com relação aos modificadores.
Listagem 6 - Exemplo sem modificadores de acesso explícitoA classe Agenda não usa nenhum dos modificadores de acesso de forma explícita. Pela nossa classificação, implicitamente ele está usando o modificador de acesso Package ou Friendly. Vimos, anteriormente, que o modificador de acesso Package permite que classes do mesmo pacote acessem atributos ou métodos que estejam com tal modificador. Considerando que a nossa classe Principal está no mesmo pacote (veja sobre pacotes na classificação de Package), então, ele tem acesso aos atributos e métodos da classe Agenda.
Você pode estar se perguntando... Quando a classe Principal teve acesso aos atributos da classe Agenda?
Respondendo: veja o trecho de código da classe Principal a seguir.
Listagem 7 - Acesso direto aos métodos e atributos da classeO método main() da classe Principal está acessando os atributos dia, mes e anotacao da classe Agenda. E modificando as informações sem passar pelo teste da validação da data. Essa falha na codificação não é aceitável.
Vamos então aplicar o encapsulamento tornando privados os atributos e o método validaData()da classe Agenda com o uso do modificador de acesso private, e permitir os acessos para os métodos anote() e mostraAnotacao(). Temos:
Listagem 8 - Adicionando explicitamente os modificadores de acessoAgora, o compilador já não aceita usar os comandos abaixo. Isso causaria erro! Ou seja, os atributos da classe Agenda agora são privados apenas para a uso da própria classe Agenda, como mostra a listagem 9.
Listagem 9 - Encapsulamento em açãoCom essa modificação, só é possível inserir uma anotação na classe Agenda usando o método anote(). O método anote() garante que a data inserida para a anotação será validada com o método validaData(), que também é privado ao uso apenas da classe Agenda.
Uma verdade que não pode ser omitida para os programadores: você pode optar em não usar a característica de encapsulamento em seus códigos.
Mas, isso seria uma péssima prática e um sinal que você não é um programador que segue as boas práticas. Se você havia pensado nisso, reveja os conceitos e tente entender a importância do encapsulamento para seus códigos.
Versão 5.3 - Todos os Direitos reservados