Encapsulamento de Dados



Documentos relacionados
Análise de Programação

Conversão de Tipos e Arrays

Exercícios de Revisão Java Básico

Orientação a Objetos e a Linguagem Java

Prof. Jhonatan Fernando

Programação Orientada a Objetos em Java

POO Programação Orientada a Objetos. Classes em Java

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

Linguagem de Programação III

Algoritmos e Programação II. Sobrecarga

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Programação Orientada a Objetos. Encapsulamento

Noções sobre Objetos e Classes

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Programação com Acesso a BD. Programação com OO Acesso em Java

Herança. Algoritmos e Programação II. Aula 5 Herança

UNIVERSIDADE FEDERAL DO PARANÁ

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Herança. Alberto Costa Neto DComp - UFS

Programação por Objectos. Java

Unidade IV: Ponteiros, Referências e Arrays

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Java. Marcio de Carvalho Victorino

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Análise e Projeto Orientados por Objetos

insfcanceof new public switch transient while byte continue extends for int null

Implementando uma Classe e Criando Objetos a partir dela

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Programação Orientada a Objetos (DPADF 0063)

Capítulo 8. Introdução UML

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

BC0505 Processamento da Informação

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

LINGUAGEM ORIENTADA A OBJETOS

ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira

Módulo 07 Características Avançadas de Classes

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Desenvolvimento OO com Java Orientação a objetos básica

Orientação a Objetos com Java

DEFINIÇÃO DE MÉTODOS

Atributos e Métodos Estáticos

Reuso com Herança a e Composiçã

Programação por Objectos. Java

Programação Orientada a Objetos C++

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

Programação por Objectos. Java

2 Orientação a objetos na prática

Capítulo 5 Reuso de Classes

Projeto de Software Orientado a Objeto

Linguagem de Programação III Herança

Técnicas de Programação II

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Aula 3 Objeto atual com referencia THIS e Classes com Herança

Visibilidade e Encapsulamento

FACULDADE PITÁGORAS DE UBERLÂNDIA PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA LISTA DE EXERCÍCIOS (Compilação) Versão 2.0

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

BSI UFRPE Prof. Gustavo Callou

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Conceitos Básicos da Programação OO

Linguagem de Programação I. Orientação a Objetos em Java

Vetores. Professor Dr Francisco Isidro Massettto

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Tópicos da Aula. Classes e Objetos. Classe Pública em Java. Classes em Java. Assinatura de Métodos. Corpo de Classes e Métodos. Conceitos de classe

Implementação de Classe e Auto-Relacionamento em Java

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Programação de Computadores - I. Profª Beatriz Profº Israel

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

ProgramaTchê programatche.net Programação OO com PHP

Módulo 06 Desenho de Classes

Padrão Arquitetura em Camadas

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

UML: Diagrama de Casos de Uso, Diagrama de Classes

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

1. Herança. Sobrescrevem métodos - redefinem métodos herdados. Subclasse herda de uma superclasse

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

Curso Java Starter. 1

Guia de Fatores de Qualidade de OO e Java

Sintaxe Básica de Java Parte 1

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Profº. Enrique Pimentel Leite de Oliveira

Desenvolvimento de Aplicações para Internet Aula 7

Introdução a Java. Hélder Nunes

Transcrição:

Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira

Modificadores de Visibilidade Especificam quais classes têm acesso aos membros (classe, atributos, métodos e construtores) de uma determinada classe public private protected friendly Programação Orientada a Objeto - Márcio Bueno 2

Modificadores de Visibilidade public Classe pode ser instanciada por qualquer outra classe Atributos e métodos são acessíveis (leitura, escrita) por objetos de qualquer classe. private Atributos só podem ser acessados por objetos da mesma classe Métodos só podem ser chamados por métodos da própria classe. Programação Orientada a Objeto - Márcio Bueno 3

Modificadores de Visibilidade protected Atributos e métodos são acessíveis dentro da própria classe, das subclasses e das classes que façam parte do mesmo pacote. Nada especificado Classe é visível somente por classes do mesmo pacote Atributos e métodos são acessíveis somente dentro das classes que pertencem ao mesmo pacote. Este modo de acesso é também chamado de default (friendly) (amigável). Programação Orientada a Objeto - Márcio Bueno 4

Modificadores de Visibilidade Exemplo public class Teste { public int atrib1; private int atrib2; protected int atrib3; int atrib4; public Teste() { atrib1 = atrib2 = atrib3 = atrib4 = 0; Programação Orientada a Objeto - Márcio Bueno 5

Modificadores de Visibilidade Exemplo (Cont.): public class Aplicacao { public static void main(string[] args) { Teste t = new Teste(); t.atrib1 = 5; // público t.atrib2 = 5; // privado t.atrib3 = 5; // protegido t.atrib4 = 5; // nada especificado Programação Orientada a Objeto - Márcio Bueno 6

Encapsulamento de Dados Encapsulamento é o que se faz quando se restringe o acesso aos dados (atributos) de uma classe (information hiding). A idéia é fazer da classe uma cápsula, onde seus atributos só poderão ser acessados por determinados métodos. Técnica de encapsulamento Pode-se alcançar o encapsulamento de dados configurando as classes da seguinte forma: Atributos PRIVATE (Dados encapsulados) Métodos PUBLIC Programação Orientada a Objeto - Márcio Bueno 7

Encapsulamento de Dados Principais benefícios: Proteção dos atributos da classe de acessos indevidos ou acidentais. Possibilidade de definir regras para alteração dos valores mantidos pelos atributos. Programação Orientada a Objeto - Márcio Bueno 8

Exemplo public class Circulo { private double raio; public Circulo(double r) { raio = r; public Circulo( ) { raio = 2; public double comprimento( ) { return ( 2 * 3.14 * raio); public double area( ) { return (3.14 * raio * raio); Programação Orientada a Objeto - Márcio Bueno 9

Exemplo public class ExemploCirculo { public static void main(string args[ ]) { Circulo c1 = new Circulo(5); System.out.println( A área de c1 é: + c1.area( )); System.out.println( O comp. de c1 é: + c1.comprimento( )); System.out.println( O raio de c1 é: + c1.raio); c1.raio = 10; System.out.println( Novo raio de c1 é: + c1.raio); Acessando um objeto com atributos encapsulados. Então, como fazer para acessar os atributos? 10

Encapsulamento de Dados Como acessar os atributos? Métodos get e set São métodos definidos para cada atributo da classe. Método get utilizado para recuperar o valor mantido por um atributo. Método set utilizado para alterar o valor mantido por um atributo. Programação Orientada a Objeto - Márcio Bueno 11

Encapsulamento de Dados Como acessar os atributos? Métodos get e set Sintaxe (Convenção): public <tipo_atributo> getnomeatributo( ) public void setnomeatributo(<tipo_atributo> novovalor) Sintaxe para atributos booleanos: public boolean isnomeatributo( ) public void setnomeatributo(boolean novovalor) Programação Orientada a Objeto - Márcio Bueno 12

public class Circulo { private double raio; public void setraio(double r) { raio = r; public double getraio( ) { return raio; public Circulo(double r) { raio = r; public Circulo( ) { raio = 2; public double comprimento( ) { return ( 2 * 3.1415 * raio); public double area( ) { return (3.1415 * raio * raio); Exemplo Métodos get/set para todos os atributos Programação Orientada a Objeto - Márcio Bueno 13

public class ExemploCirculo { public static void main(string args[ ]) { Circulo c1 = new Circulo(5); System.out.println( A área de c1 é: + c1.area( )); System.out.println( O comp. de c1 é: + c1.comprimento( )); System.out.println( O raio de c1 é: + c1.raio); c1.raio = 10; System.out.println( Novo raio de c1 é: + c1.raio); Exemplo Erros de compilação: Acessando um objeto com atributos encapsulados Programação Orientada a Objeto - Márcio Bueno 14

public class ExemploCirculo { public static void main(string args[ ]) { Circulo c1 = new Circulo(5); System.out.println( A área de c1 é: + c1.area( )); System.out.println( O comp. de c1 é: + c1.comprimento( )); System.out.println( Raio de c1: + c1.getraio( )); c1.setraio(10); System.out.println( Novo raio c1: + c1.getraio( )); Exemplo Exemplo Corrigido: Acessando um objeto com atributos encapsulados. Programação Orientada a Objeto - Márcio Bueno 15

Encapsulamento de Dados Regras para alteração do valor do atributo podem ser adicionadas ao método set. public class Circulo { private double raio; public void setraio(double r) { if (r > 0) raio = r; else System.out.println( Informar raio > 0! ); public double getraio( ) { return raio; public double comprimento( ) { return ( 2 * 3.1415 * raio); public double area( ) { return (3.1415 * raio * raio); public Circulo(double r) { this.setraio(r); public Circulo( ) { this.setraio(2); Programação Orientada a Objeto - Márcio Bueno 16

Exercício Escreva a classe Departamento com as seguintes definições: Dois atributos: codigo (inteiro) não pode receber valores menores que zero. nome (string) não pode receber valores nulos ou string vazia. Métodos de acesso aos atributos (get / set); Um construtor que receba valores para todos os atributos da classe. Um método public String tostring( ) que retorna todos os dados do departamento em um formato string. OBS: Usar a técnica de encapsulamento sugerida no curso Programação Orientada a Objeto - Márcio Bueno 17

Exercício Escreva a classe Funcionário com as seguintes definições: Três atributos: matricula (inteiro) não pode receber valores menores que zero. nome (string) não pode receber valores nulos ou string vazia. depto (utilize a classe Departamento implementada anteriormente) não pode receber valores nulos. Métodos de acesso aos atributos (get / set); Um construtor que receba valores para todos os atributos da classe. Um método string tostring( ) que retorna todos os dados do funcionário em um formato string. OBS: Usar a técnica de encapsulamento sugerida no curso. Programação Orientada a Objeto - Márcio Bueno 18

Exercícios Implementar uma aplicação que cria um objeto do tipo Funcionario, a partir de dados fornecidos pelo usuário e, ao final, imprime os valores dos atributos do objeto Funcionario criado. Programação Orientada a Objeto - Márcio Bueno 19