Programação Orientada a Objetos
(DPADF 0063)
Aula 4 – Encapsulamento
Universidade Federal de Santa Maria
Colégio Agrícola de Frederico Westphalen
Curso Superior de Tecnologia em Sistemas para Internet
Prof. Bruno B. Boniati – www.cafw.ufsm.br/~bruno
Separação da interface pública da implementação interna
Encapsulamento
• Consiste em esconder dados da classe
deixando-os apenas disponíveis através de
métodos.
• Uma classe bem definida deve separar
completamente sua interface pública da
implementação interna.
Como garantir o encapsulamento?
• O conceito de encapsulamento se aplica
utilizando modificadores de acesso nos
membros da classe.
• Atributos de instância devem ser declarados
com modificador private;
• O acesso ao estado do objeto somente deve ser
feito por métodos public (que constituem a
interface do objeto).
Modificadores de acesso
(definem o escopo/visibilidade de um método/atributo)
• public
▫ Simbolizado por “+”
▫ Indica que o atributo/método pode ser acessado por objetos de outras classes;
• private
▫ Simbolizado por “-”
▫ Protege o atributo do acesso externo, permitindo ao mesmo ser acessado
somente por métodos daquela classe e pelo objeto instanciado;
• protected
▫ Simbolizado por “#”
▫ Permite o acesso a objetos de classes filhas mas protege do acesso de objetos
que não fazem parte da hierarquia de classes (permite o acesso ao atributo se a
classe que estiver acessando fizer parte do mesmo pacote);
Modificadores de acesso (cont.)
• Toda vez que um membro tem modificador de
acesso public, ele é considerado uma interface,
pois interage com o meio externo ao objeto,
• Toda vez que um membro tem
modificador de acesso private ele é
considerado encapsulado pois não
existe interação externa.
Getters & Setters
• Uma vez que os atributos são privados, precisamos
de mecanismos para alterar (set) e pegar seu
conteúdo (get).
• Um método set é um método sem retorno (void) e
com parâmetros que altera o valor de um ou mais
atributos;
• Um método get é um método sem parâmetros e com
tipo de retorno definido que devolve o valor de
determinado atributo.
Atenção para o uso indiscriminado
de Getters & Setters
• Observe as duas classes:
Nunca crie um
getter ou setter
sem uma
necessidade real.
Exercícios para fixação
Encapsulando as eleições
• Codifique uma classe para representar uma urna
eletrônica. A classe deve conter um contador de votos
brancos, um contador de votos nulos e um contador
para cada candidato (utilize um vetor). A urna deve ser
inicializada e após sua apuração não deve mais permitir
votos.
• Deve ser permitido;
▫
▫
▫
▫
Votar;
Votar em branco;
Anular o voto;
Apurar a eleição.
Download

Aula 4 - Encapsulamento - Colégio Agrícola de Frederico Westphalen