Cursos / Informática para Internet / Programação Orientada a Objetos / Aula
Agora que você já conhece os conceitos sobre encapsulamento, vamos ver como isso acontece na prática.
Iremos mostrar um exemplo que demonstre a importância de se usar o encapsulamento na Programação Orientada a Objetos.
Vamos supor que temos uma classe Agenda que guarda apenas uma data e uma anotação importante a ser lembrada, conforme mostra a listagem 1 a seguir.
Listagem 1 - Classe agendaAgora, vamos querer que essa classe anote a informação. Assim, nossa classe fica:
Listagem 2 - Adicionando comportamentoÉ importante também verificar se a data da anotação é uma data válida. Se for uma data válida, registra-se a anotação, caso contrário a anotação recebe uma informação de data inválida. Assim, nossa classe fica:
Listagem 3 - Validação das datasVocê até agora pode está se perguntando onde está o encapsulamento e aquela conversa toda do início da aula, não é mesmo?
Calma! O objetivo desse exemplo é mostrar a fragilidade do código que não usa o encapsulamento. Por isso, iremos agora testar nossa classe Agenda com uma aplicação.
Para isso, vamos criar dois objetos com a classe Agenda: agenda1 e agenda2. Em seguida, daremos a agenda1 – uma anotação com uma data válida, e a agenda2 – uma data inválida. Finalmente, consultaremos os dados dos atributos de cada objeto, em especial a anotação que foi registrada, utilizando o método mostraAnotacao().
Listagem 4 - Testando a agendaPara a agenda1, anotamos que dia 12 do mês 10 (Outubro) é o Dia da Criança, já para a agenda2 anotamos que dia 7 do mês 15 (mês Inexistente) é o dia da Independência do Brasil.
Com a sua atual experiência de programador, observando a classe Agenda e os dados inseridos pela classe Principal, o que você acha que será impresso após termos rodado a aplicação? Vejamos então o resultado.
Perfeito!!! Não utilizamos o encapsulamento na classe Agenda e tudo funcionou perfeitamente! Sem nenhuma via de acesso desprotegida, correto? Errado! Vamos identificar a falha da nossa codificação.
Veja o que acontece se fizéssemos uma pequena modificação no método main(), observe a listagem 5 a seguir.
Listagem 5 - Modificando o método mainO resultado dessa aplicação seria...
Veja que sua Agenda permitiu que você inserisse uma data inválida para uma anotação. Isso significa que seu código está suscetível a falhas. Em um programa simples como esse, isso não irá trazer nenhuma dor de cabeça. Agora, imagine em um programa real usado diariamente pelas pessoas.
Qual é a solução? Respondendo: a solução é aplicar o encapsulamento.
Versão 5.3 - Todos os Direitos reservados