Programação
Orientada à
Objetos
Aula 8 – Prática com Encapsulamento
Ementa
Encapsulamento
Introdução
O conceito de encapsulamento é decorrente do fato de se
combinar os dados (atributos) e o código que manipula estes
dados (métodos) em um único Objeto.
Ele garante que a única forma de acesso aos dados é através
dos métodos disponíveis ao usuário (chamados públicos).
Os demais métodos e os atributos da classe ficam sendo
privados, ou seja, apenas funções-membro da classe têm
acesso direto aos mesmos.
Introdução

O conceito de encapsulamento não é exclusivo do paradigma de Orientação a
Objetos. Ele já era utilizado na definição de Tipos Abstratos de Dados, para dizer que os
dados só deveriam ser manipulados pelas funções que compunham o TAD.

Trocando em miúdos, o encapsulamento diz respeito à definição de uma estrutura que
contenha os dados, defina quais os métodos de acesso público a esses dados e possua
meios de proteger os demais métodos e os dados contra acesso direto.
Mas... por que impedir este acesso?
Introdução

Encapsular é fundamental para que seu sistema seja suscetível a mudanças:
não precisaremos mudar uma regra de negócio em vários lugares, mas sim
em apenas um único lugar, já que essa regra está encapsulada.

O conjunto de métodos públicos de uma classe é também chamado de
interface da classe, pois esta é a única maneira a qual você se comunica
com objetos dessa classe.
Métodos Getters e Setters

O modificador private faz com que ninguém consiga
modificar, nem mesmo ler, o atributo em questão.

Com isso, temos um problema: como fazer para mostrar o
saldo de uma Conta, já que nem mesmo podemos acessá-lo
para leitura?

Precisamos então arranjar uma maneira de fazer esse acesso.
Sempre que precisamos arrumar uma maneira de fazer
alguma coisa com um objeto, utilizamos métodos Get e Set!
Vamos então criar um método, digamos pegaSaldo, para
realizar essa simples tarefa:
Métodos Getters e Setters
Métodos Getters e Setters

Para permitir o acesso aos atributos (já que eles são private)
de uma maneira controlada, a prática mais comum é criar
dois métodos, um que retorna o valor e outro que muda o
valor.

A convenção para esses métodos é de colocar a palavra get
ou set antes do nome do atributo. Por exemplo, a nossa
conta com saldo, limite e titular fica assim, no caso da gente
desejar dar acesso a leitura e escrita a todos os atributos:
Métodos Getters e Setters
Exemplo 1
Alunos e Professor
Exercício 1

Replique o exemplo 1 para a classe “Professor”, utilizando
metodos GET´s e Set´s.

Imprima no programa principal o nome do Professor e seu curso.
Exercício 2

Na Classe “Professor” faça um método Para calcular o salário
do professor.

Detalhes:

Faça um método private que realize o calculo encapsulado do salário do professor
(// valor horas lecionadas * numero de aulas * 4), o valor da hora lecionada vale R$
29,00, faça o usuário entrar com um valor em relação ao “numero de aulas”.

Utilize o método private dentro de um método “SetSalarioProfessor”, este método
será chamado no programa principal.

Utilizando os conceitos apresentados em aula imprima o Salário do professor na tela,
lembrando que o atributo Salário é private.
Exercício 3

Tente incluir a idéia de encapsulamento no método de
calcular o salário do professor.

Para isso o usuário deve definir com um digito 1,2 ou 3,
indicando se o professor respectivamente é especialista,
mestre ou doutor, dependo da titulação o valor da hora aula
é diferente:
Especialista – R$ 22,00
Mestre – R$ 29,00
Doutor – R$ 31,00
Exercício 4

Utilizando os conceitos da aula de hoje, crie uma nova classe
“Calculadora”.

Esta classe devera calcula a média do aluno de modo
encaplsulado

No programa principal o usuário deve entrar com o nome do
aluno, e as 4 (quatro) notas.

Ao final o programa deve imprimir o nome do aluno, com a
média final, e uma atribuição falando se o aluno foi
“aprovado” ou “reprovado”

Detalhe: Media > 70 = Aprovado
Download

POO Aula 8- Encapsulamento (prática)