13
Java Avançado I Prof Dr. Luiz Antônio Pereira Neves [email protected] Aula 10 – Encapsulamento

Java Aula10 Encapsulamento

Embed Size (px)

DESCRIPTION

Aula sobre os principais conceitos de POO

Citation preview

Page 1: Java Aula10 Encapsulamento

Java Avançado I

Prof Dr. Luiz Antônio Pereira [email protected]

Aula 10 – Encapsulamento

Page 2: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 2

Sumário

Objetivos Conceitos de Encapsulamento

– Vantagens – Moderadores de Acesso– Exemplo sem Encapsulamento– Exemplo com Encapsulamento– Exemplo 2 dos 7 erros

• Atividade 1• Atividade 2 Conclusões

Page 3: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 3

Objetivos

Identificar os conceitos de encapsulamento da OO na linguagem Java;

Compreender o uso do encapsulamento na programação e

Analisar os exemplos propostos pelo Professor.

Page 4: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 4

Encapsulamento

Conceito: • Encapsulamento é o processo de proteger os membros de uma classe (atributos e métodos), permitindo que somente os membros necessários (tipo públicos) sejam acessados pelos usuários da classe.

Prática: significa separar o programa em partes, o mais isoladas possível.

A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.

Page 5: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 5

Encapsulamento

Vantagens: • Facilidade de Manutenção:

•Precisando realizar mudanças significativas no interior de uma classe, não será necessário modificar o restante do programa.

• Segurança de Informações:• Garantia de que a informação não será corrompida acidentalmente pelo resto do programa. • Toda a comunicação com o objeto ocorre por meio dos métodos modificadores e de acesso ( setXXX() e getXXX()), oferecendo segurança na atribuição dos valores.• Criamos programas mais robustos e confiáveis

Page 6: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 6

Encapsulamento

Page 7: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 7

Moderadores de Acesso

Page 8: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 8

Exemplo Sem Encapsulamento

class NaoEncap { int semProtecao; }

public class TesteNaoEncap { public static void main(String args[]) { //objeto1 é uma instância de NaoEncap NaoEncap objeto1 = new NaoEncap(); objeto1.semProtecao = 10; //acesso direto ao atributo //acesso direto aos atributos System.out.println("Valor sem proteção: " + objeto1.semProtecao); }}

Page 9: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 9

Exemplo com Encapsulamento

class Encapsulado { //private é um modificador de acesso de restrição máxima private private int comProtecao; public void setComProtecao (int comProtecao) { this.comProtecao = comProtecao; } public int getComProtecao() { return this.comProtecao; } }

public class TesteEncapsulado { public static void main(String args[]) { Encapsulado e = new Encapsulado(); e.comProtecao = 10; //deve-se acessar o atributos de forma indireta, encapsulada e.setComProtecao(10); System.out.println("Valor com proteção: " + e.getComProtecao()); } }

Page 10: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 10

Exemplo 2 – Descubra ...

public class Encapsulamento { private int a,b; public void Valor(){ a=a+b; System.out.println("O valor é "+a); }

public Encapsulamento (int x,int y) { a=x; b=y; } File: Encapsulamento.java

package aula10a;

// classe principalpublic class MetodoP{ public static void main(String[] args) { Encapsulamento a1 = new; Encapsulamento(1,150); a1.Valor(); }} File: MetodoP.java

Onde estão os 7 erros?

Page 11: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 11

Atividade 1

Construa uma classe em Java que contenha os seguintes aspectos:

a) Crie atributos nome, idade e altura como privates;

b) Encapsule os atributos;

c) Crie um método main que mostre os valores que estão nos

atributos.

Page 12: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 12

Atividade 2

Considere o Programa 3.4 e responda às seguintes questões:

a) A classe Tempo segue os princípios do encapsulamento? Comente a respeito disto.

b) Como é possível estender o código para atender aos princípios do encapsulamento? Quais seriam as vantagens que isto traria? Faça as modificações necessárias no código.

Page 13: Java Aula10 Encapsulamento

18/02/09 Aula 10 - Encapsulamento - Prof Neves 13

Conclusões

O encapsulamento protege os dados do objeto de forma arbitrária e não-intencional. O encapsulamento é o resultado (ou ato) de ocultar do usuário os detalhes da implementação de um objeto.A definição de como implementar os conhecimentos ou ações de uma classe, sem informar como isto é feito.