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

Documentos relacionados
Encapsulamento. Alberto Costa Neto DComp - UFS

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

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

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos

Programação Orientada a Objetos

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

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

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

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Linguagem de Programação IV Introdução

Programação Orientada a Objetos II

Visibilidade e Encapsulamento

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Classes e Objetos. Sintaxe de classe em Java

Modificadores de Acesso e Atributos de Classe

Linguagem de Programação. Diagrama de classes

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

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

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

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

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.

Programação Orientada a Objetos

Orientação a Objetos - Herança

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

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

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

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

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

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

Interfaces POO. Prof. Marcio Delamaro

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

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

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Linguagem de Programação II Implementação

Programação Java (nível intermediário) 4. Polimorfismo

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

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

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Linguagem de Programação II Implementação

Linguagens de Programação Aula 12

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

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

Classe Abstrata e Interface

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Introdução ao Java. Prof. Herbert Rausch Fernandes

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

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Herança e Propriedades

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

O PARADIGMA ORIENTADO POR OBJETOS

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Interfaces e Classes Abstratas

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

Modificadores de Acesso JAVA

POO29004 Programação Orientada a Objetos

Modelo do Mundo Real. Abstração. Interpretação

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Modificadores de acesso e atributos de classe

Linguagem de programação Programação Orientada a objetos

PROGRAMAÇÃO ORIENTADA A

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

Conceitos de Programação Orientada a Objetos

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Programação Orientada a Objetos

Linguagem de Programação I Apresentação da Disciplina

Orientação a Objetos Classes, Objetos e Encapsulamento

1 Introdução e Conceitos básicos

Herança e Polimorfismo

Introdução à orientação a objetos

Palavras Reservadas da Linguagem Java

Transcrição:

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres

Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e são acessíveis por meio da classe. Métodos podem incluir variáveis de vida mais curta. Eles: existem apenas enquanto o método está em execução; e são acessíveis de dentro do método. Nenhum modificador de visibilidade Uma variável local public int refundbalance() { int amounttorefund; amounttorefund = balance; balance = 0; return amounttorefund; 2

Modificadores de Acesso 3

Modificadores de Acesso Usados para alterar o escopo dos membros da classe pois é conveniente proibir o acesso a alguns atributos o métodos de uma classe. Utilizados antes das declarações de atributos e métodos. Na orientação a objetos, é prática quase que obrigatória proteger os atributos. Cada classe é responsável por controlar seus atributos. Esta validação não deve ser controlada por quem está usando a classe que pode desconhecer fatores internos. Java fornece: Public Private Protected Default (ausencia de um modificador de acesso) 4

O modificador Público (public) Permite o maior grau de visibilidade. Permite acesso a partir de qualquer classe sem restrições. Pode ser aplicado a classes, atributos de classes, construtores e métodos. Exemplo: public class Aluno{ 5

O modificador Privado (private) É o mais restritivo de todos Permite acesso apenas na própria classe. Nem mesmo subclasses podem acessar elementos private da sua superclasse. (conceitos explicados em próximos módulos) Os elementos privados são ocultos para o programador usuário que for usar instâncias da classe. Usualmente é utilizado para os atributos de uma classe (ocultamento de dados). Pode ser aplicado a atributos, métodos (não pode ser aplicado a classes). Ex dentro de uma classe: private String nome O componente privado não é acessado de fora da classe. Para tornar um atributo privado acessível, deve-se definir um método público na própria classe, que retorne o valor do atributo (get...) e se quisermos modificar o atributo 6 precisariamos definir outro método (set...).

O modificador Protegido (protected) Apenas as subclasses e classes do mesmo pacote tem acesso. Pode ser aplicado normalmente a variáveis e métodos (não se aplica a classes) 7

Ausência de um modificador de acesso Essa ausência indica um grau de acessibilidade considerado default. Torna os elementos visíveis somente para a própria classe e para as outras classes contidas na mesma package. Elementos declarados como default possuem menor grau de acesso do que os declarados como protected (elementos default não podem ser usados pelas subclasses caso pertençam a outras packages ). 8

Modificadores de Acesso A tabela indica quais elementos da classe podem ter quais modificadores de acesso. * Pouco utilizado Exemplo: Uma classe não pode ter o modificador de acesso private 9

A tabela indica os níveis de acesso (ou graus de visibilidades) definidos por cada modificador 10

Pilares da POO Abstração Encapsulamento Herança (será visto em módulos futuros) Polimorfismo (será visto em módulos futuros) 11

Abstração Ignorar aspectos não relevantes. É a capacidade de focalizar o essencial e ignorar detalhes menos importantes ou acidentais. Abstração é utilizada para a definição de entidades do mundo real tendo como consideração as suas características e ações relevantes. Para abstrair um objeto do mundo real criamos as classes a partir da qual obteremos os objetos. 12

Abstração 14

Encapsulamento Ocultar aspectos não relevantes. Técnica para esconder uma ideia para o usuário, tornando partes do sistema o mais independentes possível. Um dos grande trunfo da POO em relação a prog. Tradicional: Os dados e processos estão em uma única entidade, permite alterações sem afetar demais partes do sistema. Exemplo, Quando um controle remoto estraga apenas é trocado ou consertado o controle e não a televisão inteira. Nesse exemplo do controle remoto, acontece a forma clássica de encapsulamento, pois quando o usuário muda de canal não se sabe que programação acontece entre a televisão e o controle para efetuar tal ação. 15

Encapsulamento Posso ocultar detalhes não relevantes (com chave na figura). 16

Encapsulamento O encapsulamento objetiva esconder detalhes de implementação Métodos Públicos Atributos Públicos Métodos Privados Atributos Privados 17

Encapsulamento Em um processo de encapsulamento: os atributos das classes são do tipo private. Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters. public class Funcionario { private double salario; private String nome; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public void setsalario(double salario) { this.salario = salario; public double getsalario() { return salario; 18

Encapsulamento Benefícios Modularidade - (O código é independente de outros objetos) Informações Privadas (um objeto tem uma interface pública que outros objetos podem utilizar. As informações do objeto são privadas) [Information Hiding] Permitir a criação de programas com menos erros e mais clareza. Segurança no acesso ao objeto; Melhor consistência no estado interno, pois tem o intuito de diminuir as alterações incorretas nos valores das propriedades. Ex: no método set podemos adicionar condiciones para garantir a integridade dos dados. 19

Aplicação public class Triangulo { int lado1; int lado2; int lado3; int calculaperimetro() { return lado1 + lado2 + lado3; public class Programa { public static void main(string args[]) { Triangulo t = new Triangulo(); t.lado1 = 3; t.lado2 = 5; t.lado3 = 7; System.out.println(t.calculaPerimetro()); Qual pilar da OO está ferindo? 20

Aplicação Encapsulando a classe Triangulo, a classe main da erro: public class Triangulo { private int lado1; private int lado2; private int lado3; public int calculaperimetro() { return lado1 + lado2 + lado3; public class Programa { public static void main(string args[]) { Triangulo t = new Triangulo(); t.lado1 = 3; // erro t.lado2 = 5; // erro t.lado3 = 7; // erro System.out.println(t.calculaPerimetro()); 21 Como soluciono?

Aplicação public class Triangulo { private int lado1; private int lado2; private int lado3; public int calculaperimetro() { return lado1 + lado2 + lado3; //Métodos de acesso public int getlado1() { return lado1; public void setlado1(int novovalor) { lado1 = novovalor; Agora SIM!!! Adicionando métodos get e set public class Programa { public static void main(string args[]) { Triangulo t = new Triangulo(); t.setlado1(3); t.setlado2(5); t.setlado3(7); System.out.println(t.calculaPerimetro()); 22

Referências Deitel, H.M; Java Como Programar. Ed. Bookman, 2005. Programação Orientada a Objetos com Java, David J. Barnes and Michael Kolling. Pearson 2004. Material do professor Marco Fagundes, UFPa, 2003. http://www.caelum.com.br/apostila-java-orientacao-objetos/modificadoresde-acesso-e-atributos-de-classe/#6-1-controlando-o-acesso Material de Encapsulamento pela professora Ludimila Monjardim Casagrande. Material do Professor Marcio Golçalves Nota: O material da apresentação foi extraido de algumas das fontes aqui apresentadas 23