Encapsulamento. Alcides Pamplona

Documentos relacionados
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Estrutura em Camadas. Estrutura em Camadas. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Visibilidade e Encapsulamento

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Introdução à Programação. Encapsulamento e Herança

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Modificadores de Acesso e Atributos de Classe

Estrutura de Dados Funções e Procedimentos

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Classes Abstratas e Interfaces AULA 12

Aula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

[Desenvolvimento OO com Java] Modificadores de acesso e atributos de classe

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

COMPORTAMENTOS - Observações

Programação Orientada a Objetos

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Linguagem de Programação II Relacionamento entre classes

AULA 13 MÉTODOS. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Escreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores:

Java para Desktop. Programação Orientada à Objetos 2 JSE

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Valor: 0,0 CORREÇÃO. 1. Construa um programa que leia a sua idade, o seu nome e depois imprima na tela.

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Algoritmos e Estruturas de Dados I. Passagem de Parâmetros. Pedro O.S. Vaz de Melo

Linguagem de Programação II Implementação

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

Encapsulamento de Dados

Orientação a Objetos e Java

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

Lista de exercícios 2

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

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

Orientação a Objetos AULA 09

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Programação em Linguagem C

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

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Orientação a Objetos Básica

Roteiro do Programa e Entrada/Saída

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Programação Orientada a Objetos JAVA - NETBEANS

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Strings e Arrays POO

Interfaces e Classes Abstratas

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

PCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados

Orientação a Objetos com Java

Programação Orientada a Objetos

Pacotes Organizando suas classes e bibliotecas

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

5. Escreva um método em Java de nome MaiorNumero, que recebe quatro números inteiros e retorna o valor do maior deles.

BCC202 - Estrutura de Dados I

ASSOCIAÇÃO ENTRE CLASSES

Transcrição:

Encapsulamento Alcides Pamplona alcides.pamplona@gmail.com

Tópicos Acessando atributos e Métodos Encapsulamento Modificadores de Acesso Métodos get() e set() Exercício 2

Acessando Membros de Objetos Uma vez criado o objeto seus membros podem ser acessados usando o operador. : (<objeto>.<membro>) Por exemplo: c1.numconta = 001 ; //Acessando atributos c1.depositar(); //Acessando métodos Porém, acesso direto aos atributos não deve ser permitido 3

Encapsulamento Problema: c1.saldo = -2.0; //saldo inválido Solução: Proteger/ocultar o estado interno de um objeto servidor de ser corrompido pelos objetos clientes Fornecer uma interface com operações que manipulem o estado do objeto servidor 4

Encapsulamento O encapsulamento é o mecanismo utilizado na OO para disponibilizar métodos que operem sobre os dados do objeto protegendo-os do acesso direto e indevido por outros objetos. Esta proteção consistem em usar modificadores de acesso, restringindo o acesso aos atributos e fornecendo métodos para alterar esses atributos. O encapsulamento previne o problema de interferência externa sobre os dados de um objeto. 5

Encapsulamento Um exemplo de uso do encapsulamento é o atributo saldo da classe conta corrente. O saldo não pode ser alterado diretamente por outras classes, deve ser feito através de métodos adequados para isso, como saques e depósitos. A alteração aleatória do saldo causaria um problema nos cálculos e inconsistência nos dados. Por conta disso, é necessário criar classes encapsuladas que fornecem os métodos adequados para operar sobre seus dados O Encapsulamento também evita que um programa se torne tão interdependente que uma pequena mudança tenha grandes efeitos além de simplificar o reuso de código. 6

Modificadores de Acesso 7

Modificadores de Acesso Atributos devem ser todos privados (modificador private) Por exemplo: public class ContaCorrente{ } private String agencia; private String numero; private double saldo; 8

Lab1 - Encapsulando Atributos Encapsule o estado da classe contacorrente. Verifique que erros o encapsulamento provocou e porque? 9

Modificadores de Acesso O acesso a um membro privado fora da classe ocasiona um erro de compilação Deve-se construir a interface do objeto com métodos públicos (modificador public) Métodos para manipulação do estado do objeto Alteração (métodos mutators) Acesso (métodos accessors) 10

Métodos get() e set() Como referenciar a própria classe?? public class contacorrente{ private String numero; private double saldo; } public String mudarnumero(string pnumero){ contacorrente.numero = pnumero;} public class contacorrente{ private String numero; private double saldo; } public String mudarnumero(string pnumero){ this.numero = pnumero;} 11

Métodos get() e set() Método de Alteração não retorna nenhum valor (void), sendo nomeado da seguinte forma: set + nome do atributo a ser modificado Por exemplo: public void setnumero(string pnumero){ // atualiza o atributo numero this.numero =pnumero; } 12

Métodos get() e set() Método de Acesso retorna um valor do tipo do atributo, sendo nomeado da seguinte forma: get + nome do atributo a ser retornado Por exemplo: public String getnumero( ){ // retorna o atributo numero return this.numero; } 13

Encapsulamento Classe ContaCorrente com atributos privados, métodos accessors e mutators public class ContaCorrente{ private String numero; private double saldo; public void setnumero(string pnum){numero = pnum;} public String getnumero(){return numero;} public double getsaldo(){return saldo;} public boolean depositar(double pval){...} public boolean sacar(double pval){...} } 14

Lab1 - Métodos (get/set) Na Classe TAD Implemente métodos mutatórios (set) que gravem o a agência e número de conta (passados como argumento) Altere o método Depositar() de modo que não seja possível depositar um valor menor do que zero Implemente métodos que permitam o acesso (get) a seus atributos(agência, número e saldo) Na classe aplicativo: Crie um objeto do tipo contacorrente Altere os valores dos atributos (agência e número) Deposite um valor na conta Exiba os valores dos atributos do objeto criado 15

Resumo O estado interno do objeto deve ser protegido/escondido dos outros objetos (informatiom hiding ou encapsulamento) Todos os atributos de uma classe devem ser privados (modificador private) Deve-se disponibilizar métodos accessor(get) e mutator(set) para permitir a manipulação dos atributos privados 16

Exercício 3 Crie um novo projeto, defina uma classe que permita ao usuário informar dados de 3 candidatos (nome, número, partido). Crie uma classe aplicativo que exiba os dados dos 3 candidatos 17

Exercício 3 Insira na classe aplicativo a possibilidade de fazer uma eleição entre os candidatos (votar nos números dos candidatos) Para isso considere o seguinte: Os números 00 e 99 correspondem aos candidatos branco e nulo. Caso o eleitor digite um número inválido (nenhum candidato) seu voto será nulo Caso o eleitor não informe nenhum número seu voto será branco Caso seja informado (-1) eleição termina no número do candidato a Deve-se acrescentar uma propriedade no candidato que armazene seu total de votos 18

Exercício 3 Ao término da eleição deve-se exibir: Total de Comparecimento (número de votos) Qual candidato foi eleito (mostrar: número, nome e total de votos). Total de votos em Branco e Nulos. Para receber dados do Teclado em uma caixa de diálogo: javax.swing.joptionpane.showinputdialog (<Msg>); Para exibir dados em uma caixa de Diálogo javax.swing.joptionpane.showmessagedialog (null,<msg>,"informação",javax.swing.joptionpane.i NFORMATION_MESSAGE); 19

Projeto Trazer para a próxima aula: 1. Encapsulamento dos atributos de cada classe 2. Desenvolvimento das classes aplicativo do projeto utilizando as classes TAD criadas 3. Demonstração do funcionamento do aplicativo com cada uma das classes (acesso e mutação dos atributos) 20