Vous êtes sur la page 1sur 13

Java Avanado I

Aula 10 Encapsulamento

Prof Dr. Luiz Antnio Pereira Neves neves@sbs.udesc.br

Sumrio

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

Atividade 1 Atividade 2 Concluses


Aula 10 - Encapsulamento - Prof Neves 2

18/02/09

Objetivos

Identificar os conceitos de encapsulamento da OO na linguagem Java; Compreender o uso do encapsulamento na programao e Analisar os exemplos propostos pelo Professor.
Aula 10 - Encapsulamento - Prof Neves 3

18/02/09

Encapsulamento
Conceito: Encapsulamento o processo de proteger os membros de uma classe (atributos e mtodos), permitindo que somente os membros necessrios (tipo pblicos) sejam acessados pelos usurios da classe.
Prtica: significa separar o programa em partes, o mais isoladas possvel.

A idia tornar o software mais flexvel, fcil de modificar e de criar novas implementaes.

18/02/09

Aula 10 - Encapsulamento - Prof Neves

Encapsulamento

Vantagens: Facilidade de Manuteno:


Precisando realizar mudanas significativas no interior de uma classe, no ser necessrio modificar o restante do programa. Segurana de Informaes: Garantia de que a informao no ser corrompida acidentalmente pelo resto do programa. Toda a comunicao com o objeto ocorre por meio dos mtodos modificadores e de acesso ( setXXX() e getXXX()), oferecendo segurana na atribuio dos valores. Criamos programas mais robustos e confiveis

18/02/09

Aula 10 - Encapsulamento - Prof Neves

Encapsulamento

18/02/09

Aula 10 - Encapsulamento - Prof Neves

Moderadores de Acesso

18/02/09

Aula 10 - Encapsulamento - Prof Neves

Exemplo Sem Encapsulamento


class NaoEncap { int semProtecao; } public class TesteNaoEncap { public static void main(String args[]) { //objeto1 uma instncia de NaoEncap NaoEncap objeto1 = new NaoEncap(); objeto1.semProtecao = 10; //acesso direto ao atributo //acesso direto aos atributos System.out.println("Valor sem proteo: " + objeto1.semProtecao); } }

18/02/09

Aula 10 - Encapsulamento - Prof Neves

Exemplo com Encapsulamento


class Encapsulado { //private um modificador de acesso de restrio mxima 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 proteo: " + e.getComProtecao()); } }
18/02/09 Aula 10 - Encapsulamento - Prof Neves 9

Exemplo 2 Descubra ...


Onde esto os 7 erros?
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 }
18/02/09

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

Aula 10 - Encapsulamento - Prof Neves

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 mtodo main que mostre os valores que esto nos atributos.

18/02/09

Aula 10 - Encapsulamento - Prof Neves

11

Atividade 2

Considere o Programa 3.4 e responda s seguintes questes: a) A classe Tempo segue os princpios do encapsulamento? Comente a respeito disto. b) Como possvel estender o cdigo para atender aos princpios do encapsulamento? Quais seriam as vantagens que isto traria? Faa as modificaes necessrias no cdigo.
18/02/09 Aula 10 - Encapsulamento - Prof Neves 12

O encapsulamento protege os dados do objeto de forma arbitrria e no-intencional.

O encapsulamento o resultado (ou ato) de ocultar do usurio os detalhes da implementao de um objeto.

A definio de como implementar os conhecimentos ou aes de uma classe, sem informar como isto feito.

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