Visibilidade e Encapsulamento

Documentos relacionados
Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

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

Classes e Objetos. Sintaxe de classe em Java

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

Encapsulamento de Dados

Programação Orientada a Objetos

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

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisã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

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Interfaces e Classes Abstratas

Introdução à UML. Prof. Jesus José de Oliveira Neto

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

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

Linguagem de Programação. Diagrama de classes

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

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

Conceitos Básicos da Programação OO

Conceitos de Programação Orientada a Objetos

Encapsulamento. Alberto Costa Neto DComp - UFS

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

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

O PARADIGMA ORIENTADO POR OBJETOS

Fundamentos de Orientação à objetos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

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

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

Notas de Aula 04: Herança e polimorfismo.

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

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

Programação Orientada a Objetos JAVA - NETBEANS

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

Pacotes Organizando suas classes e bibliotecas

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

Programação Orientada a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

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

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

COMPORTAMENTOS - Observações

Modificadores de Acesso e Atributos de Classe

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Encapsulamento. Alcides Pamplona

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

Linguagem de Programação II Implementação

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

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

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

Programação Orientada a Objetos. Encapsulamento

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

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

AULA 15 CONSTRUTORES. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Programação Orientada a Objetos

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

PCS3413 Engenharia de Software e Banco de Dados

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

No final deste curso, saberás criar programas através da linguagem de programação Java.

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

Programação Orientada a Objetos

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

Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.

Programação C# + ASP.NET

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Terceira aula

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

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

Programação Orientada a Objetos

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Linguagens de Programação Aula 12

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

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

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

Desenvolvimento Web TCC Turma A-1

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

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

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

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

Programação C# + ASP.NET

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

JAVA. Professor: Bruno Toledo

Para calcular a área do trapézio considere a entrada na seguinte ordem: <base maior> <base menor> <altura>.

Rafael B. Pereira (

Transcrição:

Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016

Agenda Pacotes Visibilidade Encapsulamento Hands-On 2

Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo ou método está intimamente ligado ao conceito de pacote (package) A identificação de um package corresponde à hierarquia de diretórios na qual a classe está inserida Observar que o package é utilizado para mapear os diretórios e devem ser separados por ponto. Observar para que os nomes dos diretórios sejam válidos em todas as plataformas 3

Pacotes 4

Pacotes Podemos utilizar diversos packages em uma classe para isso devemos simplesmente importa-los A sintaxe para a importação já é conhecida 5

VISIBILIDADE 6

Visibilidade A visibilidade e seus modificadores de acesso definem quais classes podem usar ou ter acesso a um determinado elemento Tais elementos podem ser Uma classe Atributos de uma classe (variáveis) Os métodos de uma classe 7

Visibilidade Como impedir esse tipo de problema? 8

Visibilidade A melhor solução para isto é forçar quem utiliza a classe Conta a chamar os métodos corretos e não permitir acesso aos atributos da classe Quem chama o método não deve saber como os métodos são executados, apenas o que eles fazem Podemos definir métodos que não podem ser utilizados e nem vistos fora da classe Sempre deves expor o mínimo possível de funcionalidades, para criar um baixo acoplamento entre as classes 9

Visibilidade Em Java, possuímos quatro modificadores de acesso public protected private friendly ou default 10

Visibilidade public A classe pode ser instanciada por qualquer outra classe Atributos e métodos são acessíveis (leitura, escrita) por objetos de qualquer classe private Não se aplica a classes Atributos só podem ser acessados por objetos da mesma classe Métodos só podem ser chamados por métodos da própria classe 11

Visibilidade protected Não se aplica a classes 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) 12

Visibilidade Onde podemos aplicar os modificadores de acesso? Modificador Símbolo Classe Atributos Métodos public + sim sim sim protected # não sim sim default ~ sim sim sim private - não sim sim 13

Visibilidade Grau de visibilidade (quem pode utilizar) os elementos anotados com os modificadores de acesso? Modificador Classe Package Subclasse* Global** public sim sim sim sim protected sim sim sim não default sim sim não não private sim não não não * Subclasse contida em outro package ** Acesso por classes de outros projetos ou sistemas 14

ENCAPSULAMENTO 15

Encapsulamento Encapsulamento é um dos conceitos fundamentais da programação orientada a objetos Encapsulamento (information hiding) é o que se faz quando se restringe o acesso aos dados (atributos) de uma classe ou aos detalhes internos da implementação (métodos) 16

Encapsulamento A ideia é 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 17

Encapsulamento Pra que encapsular? Para reduzir o acoplamento e assim Facilitar alterações na aplicação Uma determinada regra de negócio só precisa ser alterada em um único lugar Facilitar o aprendizado, pois o mínimo de funcionalidades são expostas tornando o processo menos complexo Incrementar o reuso de código 18

Encapsulamento 19

Encapsulamento 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 Possibilidade de limitar as operações e alterações realizadas pelos elementos que estão acessando a classe 20

Encapsulamento Isso funcionaria? 21

Encapsulamento Se não funciona como deveríamos fazer para funcionar? 22

Encapsulamento Como acessamos os atributos? MÉTODOS GET E SET São métodos definidos para cada atributo da classe (quando necessário) Método get é utilizado para recuperar o valor mantido por um atributo Método set é utilizado para alterar o valor mantido por um atributo 23

Encapsulamento 24

Encapsulamento 25

Encapsulamento 26

Hands-On Escreva a classe Departamento com as seguintes definições: Dois atributos: codigo (Integer): 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 aprendida em aula 27

Hands-On Escreva a classe Funcionário com as seguintes definições: 28 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 Um método string tostring( ) que retorna todos os dados do funcionário em um formato string. OBS: Usar a técnica de encapsulamento aprendida em aula

Hands-On Implementar uma aplicação (uma outra classe com o método main) que cria 02 objetos do tipo Departamento e 10 objetos do tipo Funcionario, a partir de dados fornecidos pelo usuário e, ao final, imprime os valores dos atributos dos objetos criados Crie a UML (diagrama de classes) para as classes desse exercício 29