Cursos / Eletrônica / Programação Orientada a Objetos / Aula

arrow_back Aula 05 - Encapsulamento

Um Exemplo Completo

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 agenda

Agora, 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 datas

Você 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 agenda

Para 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.

Saída impressa no terminal

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 main

O 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