Buscar

Aula03 Paradigma OO APS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 134 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 134 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 134 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ANÁLISE E PROJETO DE SOFTWARE 
Socorro Vânia Alves 
Socorro.vania@gmail.com 
O que veremos hoje? 
FUNDAMENTOS DO PARADIGMA OO 
 Definição de Paradigma 
 Abstração 
 Objeto (identidade, estado, comportamento) 
 Classes (relacionamentos) 
 Herança 
 Encapsulamento 
 Polimorfismo 
 
O que vimos antes... 
 Análise e projeto acontecem dentro de um processo 
 Análise: consiste em entender o problema 
 informação do cliente 
 Projeto: consiste em modelar a solução 
 informação para o programador 
 Nesta disciplina focamos em Análise e Projeto OO 
 Análise OO: objetos do domínio 
 Projeto OO: objetos lógicos 
 Os modelos OO utilizam o Paradigma da Orientação a 
Objetos 
 
O Paradigma da Orientação a Objetos 
 O que é um Paradigma? 
Um Paradigma é uma 
forma de abordar um 
problema 
O Paradigma da Orientação a Objetos 
 O mundo real é formado de 
coisas. Como exemplos de coisas 
podem-se citar um cliente, uma 
loja, uma venda, um pedido de 
compra, um fornecedor, um aluno, 
etc. 
 No paradigma da orientação a 
objetos, essas coisas do mundo 
real são denominadas objetos 
 Objetos do mundo real transformam-se 
em objetos no software 
 
O Paradigma da Orientação a Objetos 
 Portanto, o POO visualiza e representa o mundo 
real como um conjunto de objetos que interagem 
entre si para que determinadas operações sejam 
realizadas 
 
 
 
 
 A perspectiva empregada é de objetos 
 
 
 
Obj 1 
Obj 2 
Obj 4 
Obj 3 
O Paradigma da Orientação a Objetos 
 A ênfase é identificar e descrever objetos ou 
conceitos do domínio do problema 
 Ou em outras palavras é identificar objetos 
lógicos de software que poderão ser 
eventualmente implementados usando uma 
linguagem de programação OO 
O Paradigma da Orientação a Objetos 
 Cada objeto realiza tarefas específicas. 
 É através da interação/cooperação entre os 
objetos que uma tarefa computacional é 
realizada. 
 
Obj 1 
Obj 2 
Obj 4 
Obj 3 
O Paradigma da Orientação a Objetos 
O Paradigma da Orientação a Objetos 
 Diferentemente da análise e projeto 
estruturados, na orientação a objetos o sistema 
é visto como um conjunto de objetos que 
interagem para realizar funções 
 Uma nova maneira de pensar o sistema de software 
 
O Paradigma da Orientação a Objetos 
O Paradigma da Orientação a Objetos 
 Paradigma Estruturado x Paradigma OO 
O Paradigma da Orientação a Objetos 
 Paradigma Estruturado x Paradigma OO 
Análise de um Jogo de Futebol 
Passar a bola 
Fazer Gol 
Cobrar lateral 
Cobrar tiro de meta 
Diblar o jogador 
Cobrar falta 
Marcar Penalt 
 
Jogador 
Juiz 
Bola 
Campo 
Paradigma Estruturado Paradigma OO 
O Paradigma da Orientação a Objetos 
 Bases do Paradigma da Orientação a Objetos 
 Correspondência com o mundo real 
 Modularidade dos componentes 
 Objetos com finalidade própria 
 Permite a combinação destes objetos 
 Alta coesão interna 
 Fácil ampliação do objeto 
 Permite reuso dos objetos 
 Encapsulamento 
 
Por que Orientação a Objetos 
 Mas porque usar OO? 
Porque OO é um modo de pensar a respeito dos 
problemas utilizando conceitos do mundo real 
Hoje sabemos que OO traz diversos benefícios como 
Diminuição do tempo e custo de desenvolvimento 
Reutilização de código 
Facilidade de manutenção 
Maior grau de abstração 
Maior encapsulamento 
Por que Orientação a Objetos 
 Mas porque usar OO? 
OO não se limita apenas a programação 
 Existem hoje: 
Linguagem OO 
Banco de Dados OO 
Metodologia de desenvolvimento OO 
Modelagem OO 
O Paradigma da Orientação a Objetos 
 Quais os conceitos/princípios fundamentais do POO? 
Abstração 
Objetos, atributos, operações 
Classes 
Encapsulamento 
Polimorfismo 
Herança 
outros... 
O Paradigma da Orientação a Objetos 
 Quais os conceitos/princípios fundamentais do POO? 
Pilares do POO 
O Paradigma da Orientação a Objetos 
Abstração 
 É o processo mental de extrair as 
características essenciais de um objeto ou 
entidade e ignorar os aspectos não relevantes 
para o enfoque considerado. 
 Consiste em ignorar aspectos não relevantes 
 
O Paradigma da Orientação a Objetos 
O Paradigma da Orientação a Objetos 
 Abstração 
 
Serviços e atributos aplicáveis a objetos dentro de um determinado contexto 
O Paradigma da Orientação a Objetos 
Abstração 
 É considerada a habilidade de modelar 
características do mundo real do problema que o 
analista esteja tentando resolver 
Ato de separa um ou mais elementos de uma 
totalidade complexa 
A abstração é necessária para se ter um modelo fiel 
da realidade sobre a qual se possa operar 
O processo de abstração é fundamental para o 
desenvolvimento de software orientados a objetos 
O Paradigma da Orientação a Objetos 
 Exemplo de Abstração 
 Problema: determinar a media final de um 
aluno 
 Aspectos relevantes: suas notas, assiduidade, 
participação durante as aulas 
 Aspectos irrelevantes: meio de transporte utilizado, 
procedência escolar, interesses 
 
Conceitos da Orientação a Objetos 
 Como o trabalho inicia... 
Conceitos da Orientação a Objetos 
 O primeiro passo consiste em identificar os Objetos no 
domínio do problema 
Conceitos de Orientação a Objetos 
 Objeto é uma abstração que representa uma entidade 
do mundo real 
 Os objetos do sistema são aqueles que possuem 
significado para o software 
Objetos 
Conceitos de Orientação a Objetos 
 Exemplos de Objetos 
Conceitos de Orientação a Objetos 
 Objeto pode ser algo concreto (cliente, carro) ou abstrato 
(conta, transação bancária, histórico) 
 
Objetos 
Conceitos de Orientação a Objetos 
 Exemplos de Objetos 
Conceitos de Orientação a Objetos 
 Objetos possuem três propriedades: 
 Identidade 
 Estado definido pelo conjunto de atributos do 
objeto 
 Comportamento definido por suas 
operações/métodos/serviços 
 
Conceitos de Orientação a Objetos 
 Objetos possuem três propriedades: 
 
Conceitos de Orientação a Objetos 
 Exemplos: 
Objeto Aluno 
 Estado: nome, matricula, nota, RG, etc. 
Comportamento: fazer matricula, trancar matricula, etc. 
Objeto Conta Corrente 
 Estado: numero, saldo, data de criação, etc. 
Comportamento: sacar, depositar, transferir, etc. 
 Objetos possuem três propriedades: 
 
Conceitos de Orientação a Objetos 
 Identidade 
 Identidade é o nome do objeto. 
A identidade identifica de forma única um objeto, 
independente dos valores de seus atributos. 
A Identidade significa que cada objeto é único no 
sistema. 
 
Conceitos de Orientação a Objetos 
 Estado 
O estado de um objeto é definido pelo conjunto de 
propriedades do objeto (os atributos) e de suas 
relações com os outros objetos 
 É algo que muda com o tempo, por exemplo, um 
objeto turma pode estar no estado aberto ou 
fechado. Inicia no estado aberto e fecha quando 10 
alunos fazem inscrição 
Conceitos de Orientação a Objetos 
 Atributos 
São dados para os quais cada objeto em uma classe 
tem seu próprio valor 
Conceitos de Orientação a Objetos 
 Atributos do Objeto Carro 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
 Padrões para Nomes de Atributos 
Sem hífen ou espaços 
Sem preposições (de, para, do, com, etc.) 
1ª letra minúscula (parao caso de vários nomes, a 1ª 
letra dos demais nomes devem ser maiúsculas) 
Conceitos de Orientação a Objetos 
 Comportamento (operações ou Métodos) 
 É implementado por um conjunto de operações ou 
métodos existentes em um objeto 
Diz respeito a que operações são realizadas por um 
objeto, ou seja, o que o objeto é capaz de fazer 
 Lógica contida em um objeto para designar lhe um 
comportamento 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
Pessoa 
comer() 
Andar() 
Falar() 
Professor 
leciona() 
corrigeProva() 
Aluno 
assisteAula() 
fazProva() 
Em um diagrama de 
classes os métodos 
são representados 
conforme indicado 
na figura ao lado 
Conceitos de Orientação a Objetos 
 Padrões para Nomes de Operações 
 Sem hífen ou espaços 
 Sem preposições (de, para, do, com, etc.) 
 Se possível colocar Verbo+Sujeto 
 1ª letra minúscula (para o caso de vários nomes, a 1ª letra dos 
demais nomes devem ser maiúsculas) 
Conceitos de Orientação a Objetos 
Dicas 
 Identificar o estado e o comportamento de objetos do mundo 
real é o primeiro passo para começar a analise e o projeto 
OO. 
 Observe um objeto e pergunte: 
Quais os possíveis estados que esse objeto pode estar? Ou 
seja, quais são os atributos ou propriedades ou dados que 
ele apresenta e pode armazenar? 
Quais os possíveis comportamentos que ele pode executar? Ou 
seja, quais as operações que podemos realizar com esses 
dados? 
 
O Paradigma da Orientação a Objetos 
Classes 
 Estamos sempre identificando objetos ao nosso 
redor. Eles são classificados em grupos, de acordo 
com suas características, ou seja, os objetos são 
separados em classes Classe Cachorro 
Conceitos de Orientação a Objetos 
Classes 
 É a descrição formal de um conjunto de objetos que 
possuem estados semelhantes (mesma lista de 
atributos) e comportamento comum (mesmas 
operações) 
Uma classe pode ser vista como um esqueleto/modelo 
para criar objetos. 
Conceitos de Orientação a Objetos 
 Classes 
 Fazendo uma analogia uma classe é como se fosse um 
gabarito, uma planta de uma casa. As casas criadas a 
partir da planta seriam os objetos 
Conceitos de Orientação a Objetos 
Classes 
Conceitos de Orientação a Objetos 
Classes 
 Uma classe é constituída por objetos que obedecem à mesma 
especificação 
 Um objeto também é 
chamado de instância da classe 
 
 Conta 
classe 
Objeto 1 
Objeto 2 
Objeto 3 
A classe conta tem os atributos numero, cliente, sado e limite 
 
Conceitos de Orientação a Objetos 
Pessoa 
nome 
endereco 
telefone 
dataNascimento 
altura 
registrar() 
pagar() 
 
Classe 
Maria 
Pedro 
A 
T 
R 
I 
B 
U 
T 
O 
S 
 
M 
E 
T 
O 
D 
O 
S 
Classes 
 Na definição da classe são especificados seus atributos e 
métodos 
 
 
Conceitos de Orientação a Objetos 
Classes 
 A estrutura de um software é formada pelas classes do sistema 
Conceitos de Orientação a Objetos 
 Classes 
 Em Java a definição de uma classe segue o padrão indicado abaixo: 
Pessoa 
nome 
idade 
falar() 
andar() 
 
Java 
Conceitos de Orientação a Objetos 
 Símbolos para Classes 
 Uma classe é representada por um retângulo dividido em 
três partes 
Conceitos de Orientação a Objetos 
Classes 
Conceitos de Orientação a Objetos 
 Classes 
Conceitos de Orientação a Objetos 
 Classes 
Conceitos de Orientação a Objetos 
 Classes 
Conceitos de Orientação a Objetos 
 Padrões para Nomes de Classes 
Nomes no singular (substantivo) 
Sem hífen ou espaços 
Sem preposições (de, para, do, com, etc.) 
Para vários nomes usar a 1ª letra maiúscula e 
demais minúsculas 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
Classes 
Dica 
Classes devem encerrar uma só abstração do 
mundo real. 
Por exemplo, uma classe estudante contendo 
também o histórico do estudante não é uma boa 
solução. Melhor é dividi-la em duas classes: 
estudante e histórico. 
 
Conceitos de Orientação a Objetos 
 Relacionamentos entre Classes 
 Classes podem estar conectadas por algum tipo de 
relacionamento. Podem ser: 
Associação simples (binária) 
Agregação 
Composição 
Generalização/Especialização (herança) 
Associação Reflexiva (estudaremos mais tarde) 
Associação Ternária (estudaremos mais tarde) 
Dependência (estudaremos mais tarde) 
 Realização (estudaremos mais tarde) 
Conceitos de Orientação a Objetos 
 Associações simples entre Classes 
 Associações simples representam que existe alguma conexão 
entre duas classes, de tal forma que uma deve manter 
alguma referencia a outra 
 Relação do tipo tem um entre objetos 
 Associações simples são representadas na forma de uma 
linha cheia conectando as duas classes, onde pode aparecer 
o nome do relação ou o nome dos papéis 
 As extremidades da associação podem possuir uma 
multiplicidade 
 No relacionamento de associação aparecem várias 
multiplicidades (ex: 1, 0..1, 0..*) 
Conceitos de Orientação a Objetos 
 Associações simples entre Classes 
 Multiplicidade 
 Representam a informação dos limites inferior e superior da 
quantidade de objetos aos quais outro objeto pode se associar. 
 Cada associação em um diagrama de classes possui duas 
multiplicidades, uma em cada extremos da linha de associação. 
Conceitos de Orientação a Objetos 
 Associações simples entre Classes 
 Os objetos envolvidos apresentam existências independentes, 
mas existe uma ligação (associação) entre eles 
Conceitos de Orientação a Objetos 
 Associações simples entre Classes 
 Os objetos envolvidos apresentam existências independentes, 
mas existe uma ligação (associação) entre eles 
nome 
endereço 
empresa pessoa 
nome 
CPF 
endereço 
empre- 
gado 
empre- 
gador 
* 1 
Nome do papel Nome do papel 
Conceitos de Orientação a Objetos 
 Associações simples 
entre Classes 
 Os objetos envolvidos 
apresentam existências 
independentes, mas existe uma 
ligação entre elas 
Conceitos de Orientação a Objetos 
 Associações simples entre Classes 
 Os objetos envolvidos apresentam existências independentes, 
mas existe uma ligação entre elas 
Conceitos de Orientação a Objetos 
 Agregação e Composição 
A ideia de agregação e composição estabelece 
a criação de novas classes de objetos a partir da 
junção de classes já existentes 
Conceitos de Orientação a Objetos 
Agregação 
 É um tipo especial de associação (ou 
relacionamento) 
 A agregação representa um 
relacionamento “todo-parte”, ou seja, uma 
das classes representa o todo, enquanto 
outra representa a parte 
 
Conceitos de Orientação a Objetos 
Agregação 
 A agregação mostra o relacionamento 
entre um objeto composto (todo) e os 
objetos que o compõem (partes ou 
componentes) 
 Uma classe agrega outra (não 
exclusivamente) 
 Dependência fraca entre as classes 
 
Conceitos de Orientação a Objetos 
 Agregação 
Como visto antes, a associação simples estabelece uma ligação 
entre as classes, mantendo a independência de vida das mesmas. As 
classes existem por si só. Posso acabar com o relacionamento, sem 
prejudicar a existência de cada classe. 
Por exemplo, ao ligar por associação a classe Prontuário à 
classeExame, crio um relacionamento que representará os 
exames solicitados naquela consulta 
Conceitos de Orientação a Objetos 
Agregação 
No caso da agregação, uma classe é enxergada como parte 
de outra, indicando na fase de implementação, que para se ter 
acesso ao comportamento dos objetos-partes devemos fazê-lo 
por meio dos objetos-todo. 
Na agregação desenhamos um losango (diamante) junto à 
classe que representa o “todo” 
Conceitos de Orientação a Objetos 
Agregação 
Uma Pétala não é um tipo de Flor. 
 
Uma Pétala é uma parte de uma Flor. 
Flor 
Caule Raiz Pétala 
notação 
Conceitos de Orientação a Objetos 
Agregação 
Conceitos de Orientação a Objetos 
Agregação 
Conceitos de Orientação a Objetos 
Agregação 
Conceitos de Orientação a Objetos 
Agregação 
Conceitos de Orientação a Objetos 
Agregação 
https://www.caelum.com.br/apostila-java-orientacao-objetos/orientacao-a-objetos-basica/#4-9-continuando-com-atributos 
Conceitos de Orientação a Objetos 
Agregação 
Conceitos de Orientação a Objetos 
Composição 
 É também um relacionamento do tipo “todo-parte” 
 Entretanto, é uma variação mais poderosa da 
agregação, indicando que a classe parte pertencerá só 
e somente só à classe todo, sendo esta responsável pela 
criação e destruição de suas partes. 
 Dependência forte entre as classes 
Graficamente, basta preencher o losango (diamante) 
junto à classe-todo. 
 
Conceitos de Orientação a Objetos 
Composição ContaBancaria 
Transação 
Conceitos de Orientação a Objetos 
Composição 
Conceitos de Orientação a Objetos 
 Diferença entre Agregação e Composição 
 Algumas dicas para se identificar um relacionamento como 
uma agregação ou composição: 
 Se você puder dizer no relacionamento de associação que uma classe 
é “parte de”, “contém” ou “pertence à” outra classe, então estamos 
diante de uma agregação ou composição; 
 Se as partes não podem ser divididas, estamos diante de 
uma composição. Caso contrário, temos uma agregação. 
 Se o ciclo de vida das partes estão atreladas ao ciclo de vida do 
todo, temos uma composição; 
 Se a multiplicidade do todo é 1 ou 0..1, temos uma composição; 
 Se a multiplicidade do todo puder ser maior do que 1, temos 
uma agregação. 
 
Conceitos de Orientação a Objetos 
 Generalização/Especialização 
 Tipo de relacionamento entre uma classe e uma ou 
mais versões refinadas dela (herança) 
 Esse tipo de relacionamento é chamado também 
de relacionamento “é-um-tipo-de” 
Cada instancia de uma subclasse é tambem uma 
instancia da superclasse 
Conceitos de Orientação a Objetos 
 Herança - Generalização e Especialização 
Estudante e 
trabalhador é 
um tipo de 
Pessoa 
Conceitos de Orientação a Objetos 
 Generalização e Especialização 
Conceitos de Orientação a Objetos 
Herança 
 Mecanismo simples e poderoso do POO que permite que uma 
nova classe seja descrita a partir de uma classe já existentes 
 É um mecanismo que permite a uma classe herdar todo o 
comportamento e os atributos de outra classe 
 Classe mãe: superclasse, classe base 
 Classe filha: subclasse, classe derivada 
 Classe filha (mais especifica) herda atributos e métodos da 
classe mãe (mais geral) 
 Classe filha possui atributos e métodos próprios 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança 
Pessoa 
comer() 
Andar() 
Falar() 
Professor 
leciona() 
corrigeProva() 
Aluno 
assisteAula() 
fazProva() 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança 
Conceitos de Orientação a Objetos 
Herança em Java 
Conceitos de Orientação a Objetos 
Herança 
O uso da herança permite criar classes mais 
genéricas ou mais específicas 
A herança aumenta a capacidade de reutilização 
das classes 
Conceitos de Orientação a Objetos 
 Mecanismo da Herança 
 Entre uma classe e a sua superclasse é 
estabelecida uma relação de especialização 
que estabelece as seguintes propriedades 
entre uma subclasse B e a sua superclasse 
A: 
 B herda de A todas os atributos e métodos (exceto 
os privados) 
 B pode definir novos atributos e novos métodos 
próprios 
 B pode redefinir atributos e métodos herdados 
Conceitos de Orientação a Objetos 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 Uma das ideias mais importantes da OO é o encapsulamento 
 Encapsular significa esconder a implementação dos objetos, isto 
é, a sua estrutura interna 
Objetos devem esconder a sua complexidade 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 Significa separar os aspectos externos de um objeto dos seus 
detalhes internos de implementação 
 Ocultar partes independente da implementação, permitindo 
construir partes invisíveis ao mundo exterior 
Objetos devem esconder a sua complexidade 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 Exemplo: 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 Esconde a implementação interna da especificação externa 
 Clientes conhecem somente a interface 
 Clientes dependem da interface e não da implementação 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 Objetos possuem atributos e métodos (operações) 
 Estes devem estar armazenados no próprio objeto. Isso significa 
que eles devem estar encapsulados no objeto 
 Exemplo: 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 O mecanismo de encapsulamento serve para controlar o acesso 
aos atributos e métodos de uma classe. É uma forma eficiente de 
proteger os dados manipulados dentro da classe 
 O encapsulamento proíbe a visualização interna de um objeto 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
 
(não recomendável) 
Interface 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
 Em Java 
Conceitos de Orientação a Objetos 
 Encapsulamento 
 
Um objeto é uma capsula que possui: 
• Dados privados 
• Um conjunto de métodos privados 
• Uma interface (API) constituída por 
métodos públicos 
 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
 Com o encapsulamento um objeto determina a permissão que outros 
objetos terão para acessar seus membros (atributos e métodos) 
 Um objeto nunca deve manipular/acessar diretamente os atributos de 
outro objeto 
 A manipulação (acesso) deve ser feita via métodos, garantido assim o 
encapsulamento 
 Para isso, normalmente declara-se os atributos de uma classe como 
privados (ocultados) ou protegidos 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
Portanto, atributos devem ser associados à métodos e 
só devem ser acessados por estes. Ou seja, a única 
forma de conhecer ou alterar os atributos de um 
objeto é por meio de seus métodos. 
 Exemplo: 
Atributos da classe Cliente não devem ser acessados 
por classes externas, a menos que explicitamente 
permitido 
 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
 Em Java 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
 Alguns graus de visibilidade: 
 Pública: acessível a todo o sistema 
 Privada: acessível somente dentro da classe 
 Protegida: acessível dentro da classe e suas subclasses 
Pacote: acessível às classes de um mesmo pacote 
Indicam o nível de acesso 
aos componentes internos 
de uma classe 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
Modificadores de visibilidade 
 
 
(interface) 
Conceitos de Orientação a Objetos 
 Encapsulamento - Visibilidade 
Conceitos de Orientação a Objetos 
 Encapsulamento - Interface 
 Na terminologia da orientação a objetos, diz-se que um objeto 
possui uma interface 
 Em termos bastante simples, a interface de um objeto é o que ele 
conhece e o que ele sabe fazer 
 A interface é constituída pela lista de serviços (métodos públicos) 
fornecidos por um objeto 
 Através do encapsulamento, a única coisa que um objeto precisa 
saber para pedir a colaboração de outro objeto é conhecer a sua 
interface. Isso contribui para a autonomia dos objetos. 
 A definição da interface é essencial para o bom funcionamento 
da classe 
 
Conceitos de Orientação a Objetos 
 Encapsulamento - Mensagens 
 Um objeto que precise da colaboração de outro objeto para realizar 
alguma tarefa simplesmente envia uma mensagem a este último 
 O método que o objeto requisitado usa para realizar a tarefa não é 
conhecido internamente pelos objetos requisitantes 
 O objeto requisitante precisa conhecer quais as tarefas que um outro 
objeto sabe fazer, ou seja, conhecer a interface do objeto a ser 
requisitado. 
 Para tanto, a classe do objeto declara o seu comportamento que 
será visível aos objetos requisitantes 
 
Conceitos de Orientação a Objetos 
 Encapsulamento - Mensagens 
 A interface de um objeto define as mensagens que ele pode 
receber. 
 Cada objeto envia mensagens a outros objetos para 
realizar certas tarefas, sem se preocupar em como as 
tarefas são realizadas. 
 Pelo princípio do Encapsulamento, a implementação de um 
objeto requisitado não importa para um objeto requisitante. 
 
Conceitos de Orientação a Objetos 
 Encapsulamento - Mensagens 
 
 
O acesso é realizado por intermédio de mensagens trocadas entre os objetos 
Métodos 
Públicos da 
interface 
Atributos e Métodos 
privados 
Objeto requisitante 
Conceitos de Orientação a Objetos 
 Encapsulamento - Mensagens 
 A comunicação entre os objetos 
ocorre pela troca de mensagens 
 Uma mensagem é a execução de 
uma operação 
 Uma mensagem pode ou não enviar 
parâmetros para outro objeto, bem 
como receber ou não uma resposta 
do mesmo 
Conceitos de Orientação a Objetos 
 Encapsulamento - Mensagens 
 
 
 O objeto que receber a mensagem responderá através da seleção e 
execução de um método que faz parte de seu comportamento 
 Após a execução, o controle volta para o objeto que enviou a 
mensagem 
Conceitos de Orientação a Objetos 
 Encapsulamento 
Vantagens: 
 Manutenção: Permite alterações sem 
afetar demais partes do sistema, ou seja, 
torna o sistema mais independente, sem 
efeitos colaterais 
 Modularidade: o código é independente 
de outros objetos 
 Clareza e Legibilidade 
 Facilita o Reuso 
Encapsulamento 
Conceitos de Orientação a Objetos 
 Polimorfismo 
 POLI (muitas) + MORPHOS (formas) 
 O conceito está estritamente relacionado com Herança 
 O polimorfismo ocorre quando um método definido no 
ancestral é redefinido no descendente com um comportamento 
interno diferente 
 
Conceitos de Orientação a Objetos 
 Polimorfismo 
Conceitos de Orientação a Objetos 
 Polimorfismo 
Conceitos de Orientação a Objetos 
 Polimorfismo 
Conceitos de Orientação a Objetos 
 Polimorfismo 
 Um mesmo tipo de objeto, sob certas condições, pode realizar 
ações diferentes ao receber uma mesma mensagem. Ou seja, 
objetos podem ter comportamentos diferentes ao mesmo 
estímulo 
 É um mecanismo que permite que os objetos tenham muitas 
formas ao longo do software 
 O Polimorfismo permite projetar e implementar sistemas que 
são facilmente extensíveis 
 
 
Conceitos de Orientação a Objetos 
 Polimorfismo 
Conceitos de Orientação a Objetos 
 Polimorfismo 
area() { lado * lado} area() { pi * raio * raio} 
Quadrado 
 Um método pode ser 
executada de diferentes 
maneiras de acordo com o 
objeto que fez a chamada 
  Os objetos agem de forma 
diferenciada mesmo que 
possuam a mesma origem 
 
Conceitos de Orientação a Objetos 
 Polimorfismo 
Conceitos de Orientação a Objetos 
 Polimorfismo 
O Polimorfismo pode ser de dois tipos: 
 Sobrecarga de método: a utilização de sobrecarga de métodos realiza 
a tarefa com distintos parâmetros de entrada. Ex.: pode ter dois métodos 
chamado com o mesmo nome, mas com comportamentos diferentes e 
parâmetros diferentes 
Conceitos de Orientação a Objetos 
 Polimorfismo 
O Polimorfismo pode ser de dois tipos: 
 Sobrescrita de método: métodos com o mesmo nome, mesma assinatura, 
comportamentos diferentes, mas em classes diferentes e originadas de 
uma mesma classe pai 
Conceitos de Orientação a Objetos 
 Polimorfismo 
 Na sobrescrita de método podemos redefinir a implementação 
de um método que já foi definido e implementado em uma 
classe superior na hierarquia de herança 
FIM

Outros materiais