Buscar

Encapsulamento em Classes de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 8: Encapsulamento 
Prof. Jefersson Alex dos Santos 
Conceitos 
• Escrita de Classes 
• Encapsulamento 
• Manipulação de Objetos 
 
Encapsulamento 
Serve para controlar o acesso aos atributos e 
métodos de uma classe 
É uma forma eficiente de proteger os dados 
manipulados dentro da classe 
Determina onde esta classe poderá ser 
manipulada 
Pode ser dividido em dois níveis: 
Classe: pública ou padrão 
Atributos e métodos 
 
Modificadores de Acesso 
Visível apenas para a classe (private) 
Visível para o mundo (public) 
Visível para o pacote e todas as subclasses 
(protected) 
Visível para o pacote (o padrão, sem modificador) 
 
Métodos Acessores e Modificadores 
Geralmente, os campos de dados privados são de 
natureza técnica e interessam apenas ao criador 
das operações. 
Assim, o acesso aos atributos deve ser permitido 
pela implementação por meio de três itens: 
Um campo de dados privado 
Um método de leitura (acessador) 
Um método de alteração (modificador) 
Por convenção, acessores e modificadores são 
chamados Getter and Setter 
• https://fedorahosted.org/spacewalk/wiki/JavaCodi
ngConventions 
 
 
Métodos Acessores e Modificadores 
Vantagens: 
Implementação interna pode ser modificada sem afetar 
nenhum código fora da própria classe 
Os métodos “modificadores” podem fazer testes contra 
erros 
 
Exemplo: método getPixel do TP1. 
Os limites da imagem puderam ser testados. 
 
Os atributos sempre devem ter modificadores 
individuais? 
 
 
Método Construtor 
O que é? 
Sobrecarga: 
Quantos construtores uma classe pode ter? 
Construtores podem ser “recursivos”? 
Construtor padrão: 
O que é? Para que serve? 
É possível ter uma classe sem construtores? 
Modificadores de acesso: 
Os construtores são sempre públicos? 
Pra que serviria um construtor privado? 
 
Construtor Privado 
Motivos 
Impedir a instanciação da classe 
Permitir a instanciação através de um método estático 
da classe 
Exemplos 
Classes utilitárias: java.lang.Math e 
java.utils.Arrays. 
Enumerations (enum) 
Padrões de projeto Singleton 
o construtor só é acessível por um método público e estático 
da classe 
a classe pode ser instanciada uma única vez 
 
Outras palavras-chave 
Static (atributos, métodos e em um “bloco 
estático”, associação com classe e não com 
instancia) 
Abstract (classes não poderão ser instanciadas e 
métodos não podem ser implementados) 
Final (imutabilidade, classe não pode ser herdada, 
método não pode ser sobrescrito) 
 
Campos Estáticos 
Constantes 
 public static final double CM_PER_INCH = 2.54; 
Métodos Estáticos 
Só podem acessar atributos estáticos de uma classe 
Blocos Estáticos 
static double[] buffer = new double[BUFFER_SIZE]; 
static { 
for (int i = 0; buffer.length; i++) 
buffer[i] = java.lang.Math.random(); 
} 
 
Como escrever uma classe 
1. Sempre mantenha os dados privados 
2. Sempre inicialize os dados 
3. Não use tipos básicos em demasia em uma classe 
String rua; int numero; String complemento; ... (?) 
4. Nem todos os campos precisam de “acessores” e 
“modificadores” 
5. Use uma forma padrão de definição das classes 
(consistência) 
6. Divida classes com muitas tarefas 
7. Dê nomes às classes, métodos e atributos que 
representem suas tarefas 
Usando Objetos 
Variável objeto 
Endereço end; 
Criando um objeto 
end = new Endereço(); 
Inicialização 
Endereço res = null; 
Endereço res = new Endereço(); 
Atribuição de objetos 
res = end; 
Método clone 
 
Objetos como argumentos 
Objetos são referências, mas eles não são 
passados por referência! 
Os parâmetros dos métodos funcionam 
como novos “ponteiros” 
Os métodos podem mudar o estado de um 
objeto usado como parâmetro se ele tiver 
acesso aos métodos “modificadores” 
 
Referência 
• Core Java 2 - Volume I Fundamentos

Outros materiais