Buscar

Orientação a Objetos Final

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

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

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ê viu 3, do total de 170 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

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

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ê viu 6, do total de 170 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

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

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ê viu 9, do total de 170 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

Prévia do material em texto

Orientação a Objetos
Princípios de Orientação a Objetos
Introdução a 
Programação Orientada a Objetos
 O que é um paradigma de programação?
 É um padrão conceitual que orienta soluções de
projeto e implementação.
 Paradigmas explicam como os elementos que
compõem um programa são organizados e como
interagem entre si.
 –Ex.: procedural, funcional, orientado a objetos.
Introdução a 
Programação Orientada a Objetos
Objetivo da Programação OO 
 Gerar programas que sejam:
–reutilizáveis
–de fácil manutenção
–obtidos de forma produtiva
–legíveis e de fácil compreensão
 Compreender os Fundamentos Básicos do Paradigma de 
Orientação a Objetos (OO).
 Motivar a Construção de Aplicações OO
Introdução a 
Programação Orientada a Objetos
Paradigma de Orientação a Objetos
 Paradigma [Aurélio, 1998]
 1. Modelo, padrão; 2. Aquilo que serve de exemplo ou
norma; 3.Aquilo que serve de base para a avaliação de
qualidade ou quantidade.
Orientação a Objetos (OO)
 Organizar o mundo real como uma coleção de objetos
que incorporam estrutura de dados e um conjunto de
operações que manipulam estes dados.
Introdução a 
Programação Orientada a Objetos
Orientação a Objetos (OO)
 Conjunto de princípios computacionais (conceitos,
técnicas, métodos,...) que definem a base comum e o
conjunto de características essenciais dos Sistemas
Orientados a Objetos.
Introdução a Programação 
Orientada a Objetos
Origens do Paradigma OO
 Linguagens de Programação
- Simula, Smalltalk, Flavours, Objective C, C++...
Contribuição: Tipo Abstrato de Dados (encapsula
estrutura de dados e comportamento)
 Banco de Dados e Inteligência Artificial
- Contribuição: Modelos Semânticos de Dados (BD e
IA); Abstrações (IA).
Introdução a Programação 
Orientada a Objetos
 Algumas áreas que usam o Paradigma OO:
– Linguagens de Programação
– Modelagem de Dados
– SGBD OO, SGBD Objeto-Relacional
– Sistemas Operacionais
– Processamento Distribuído
– Gerência de Redes e Protocolos
– Desenvolvimento de Software:
 análise, projeto e implementação.
O que é um modelo???
 Casa do Cachorro
 Sua Casa
 Prédio
 Empresa
 O que você consegue construir sem modelo???
O que é um modelo???
Importância da Modelagem
 Um modelo é uma simplificação da realidade;
 Possibilita a visualização e o controle da arquitetura
do sistema;
 Facilita o entendimento do sistema sendo construído;
 Possibilita a identificação de oportunidades para a
simplificação e a reutilização;
 Possibilita a especificação da estrutura e do
comportamento do sistema;
 Possibilita a documentação das decisões tomadas.
Importância da Modelagem
 Podemos concluir que:
– Uma empresa bem sucedida é aquela que
fornece software de qualidade e capaz de
atender as necessidades dos respectivos
usuários;
– A modelagem é uma parte central de todas
as atividades que levam a implantação de
um bom software.
Modelagem não Orientada a 
Objetos
 Raízes associadas às linguagens de terceira geração;
 Sistemas são decompostos em módulos;
 Módulos são decompostos em funções;
 Funções e dados são tratados em separado;
 Funções são ativas e dados são passivos;
 Funções precisam conhecer as estruturas dos dados;
 É problemático modificar estruturas dos dados;
 Dados fluem entre as funções.
Modelagem Orientada a Objetos
 Comportamento e dados são mantidos
integrados;
 Suportam classe, objeto e herança;
 Sugerem como identificar as classes;
 Sugerem como identificar responsabilidades;
 Classes agrupadas em hierarquias;
 Sugerem como identificar interações entre
objetos.
Engenharia de Software OO
 Engenharia de software é uma abordagem
sistemática para o desenvolvimento de software;
 Enfatiza o entendimento antes do projeto e da
codificação;
 A construção de modelos é um aspecto chave na
engenharia de software;
 Um modelo é uma abstração de algum aspecto de
um problema;
 Modelos são representados através de diagramas.
Como introduzir a orientação a 
objetos ?
 Treinar equipe em orientação a objetos;
 Treinar equipe em linguagem de programação;
 Desenvolver pequenos programas;
 Desenvolver projeto piloto;
 Projeto piloto deve ser útil;
 Várias metodologias podem ser consideradas;
 Monitorar e avaliar cuidadosamente o projeto;
 Estipular um prazo para conclusão.
 Uma das preocupações da indústria de software é a
necessidade de criar software e sistemas
corporativos muito mais rapidamente e a um custo
mais baixo.
 Para fazermos bom uso da crescente potência dos
computadores, precisamos de um software de
maior complexidade. Além de complexo, ele precisa
também ser confiável e de alta qualidade.
Por que orientação a objetos 
 Em 1968, na Conferência de Engenharia de Software
da NATO, utilizou-se pela primeira vez o termo “crise
do software” para designar o mau momento que
atravessava a indústria de software, que não possuía
métodos adequados para suprir suas demandas.
construção.
– A partir daí surgiram muitos métodos para o
desenvolvimento, todos eles com o intuito de
superar a tal “crise do software”. Neste contexto,
surgiu o paradigma da orientação a objetos.
Por que orientação a objetos 
 A programação orientada a objetos, concentra-se
nos tipos de objetos cuja estrutura de dados
pode ser manipulada somente com os métodos
da classe de objetos.
– As estruturas de dados se relacionam aos
objetos e podem ser usadas somente com os
métodos projetados para este tipo de objeto.
Por que orientação a objetos 
 A análise de sistemas no mundo orientado a
objetos é feita analisando-se os objetos e os
eventos que interagem com esses objetos.
– Cada objeto executa uma função específica
independentemente de outros objetos:
responde a mensagens, sem saber porque
a mensagem foi enviada ou quais serão as
conseqüências.
Por que orientação a objetos 
 Conceitos existentes desde os anos 60:
– ALGOL
 Início na área acadêmica - Simula 67:
– Linguagem de simulação baseada em Algol.
 1972 – Smalltalk:
– Foi a primeira linguagem orientada a objetos
construída. Ainda hoje serve como referência
pois é totalmente orientada a objetos. É ainda
restrita a pesquisas.
Origens da orientação a objetos 
 1980s - Objective-X, C++, Eiffel…
 1981 – Método OO – Matt Flavin
 1984 – Interface GUI – Apple Macintosh
 1990s - C++:
– É a linguagem responsável pela aceitação em larga
escala da Orientação a Objetos nos grandes
projetos fora dos laboratórios de pesquisa. Ainda é
muito utilizada onde performance é primordial.
Origens da orientação a objetos 
– Linguagem C + Classes;
– Classes: registros (Structs, Union, Class) +
funções.
 1990s – Java:
– Tornou-se muito aceita pela capacidade de rodar
seus programas em praticamente qualquer
plataforma.
Atualmente é a linguagem mais utilizada para
desenvolvimento em larga escala de sistemas
distribuídos em ambientes heterogêneos.
Origens da orientação a objetos 
 1990s – ADA
– Desenvolvida pelo Departamento de Defesa
do USA, ainda é a linguagem oficial do
governo americano. É muito utilizada por
grupos de pesquisa e engenharia.
Origens da orientação a objetos 
Orientação a Objetos
Fundamentos e 
Conceitos
O que é um Sistema OO?
 Um sistema Orientado a Objeto é modelado, implementado e
efetivamente funciona como um conjunto de objetos que
interagem entre si.
Obj 1
Obj 2
Obj 4
Obj 3
Resumo do Funcionamento
 Os menores componentes do sistema são os
objetos, onde são guardadas todas as informações.
 Os objetos secomunicam através de mensagens.
 As mensagens acionam os métodos dos objetos
visando efetuar as ações e manipular as
informações.
Resumo do Funcionamento
 1 // Fig. 2.1: Welcome1.java 
 2 // Programa de impressão de texto. 
 3 
 4 public class Welcome1 
 5 { 
 6 // método main inicia a execução do aplicativo Java 
 7 public static void main( String args[] ) 
 8 { 
 9 System.out.println( "Welcome to Java Programming!" ); 
10 
11 } // fim do método main 
12 
13 } // fim da classe Welcome1 
 
Welcome to Java Programming! 
 
 
Paradigma de Orientação a 
Objetos
Histórico, Conceitos e 
Terminologia
Orientação a Objetos - Abreviações
 Orientação a Objetos - OO
 Análise Orientada a Objetos - AOO
 Projeto Orientado a Objetos - POO
 Implementação Orientada a Objetos - IOO
Paradigma de Orientação a Objetos
 Surgiu na tentativa de solucionar problemas
existentes no desenvolvimento de Softwares
Complexos e Confiáveis com baixo custo de
desenvolvimento e manutenção;
 Mundo Real é formado por objetos que se interagem;
 Representar esses objetos em um software é mais
natural e permanente do que representar a sua
funcionalidade (decomposição funcional), pois essa
é mutável;
Paradigma de Orientação a Objetos
 Idéia básica
“Nós percebemos o mundo como uma coleção de 
objetos que interagem entre si”.
“Maneira de ver as coisas, uma nova maneira de 
pensar”
 Permite que objetos do mundo real sejam mapeados
em Objetos no computador;
 Visão do DOMÍNIO da aplicação é composto por
OBJETOS que se comunicam através de
MENSAGENS;
 Paradigma de OO = objetos + classificação +
herança + comunicação (Coad e Yourdon, 1990);
 Modelo de Objetos
– Objetos, Mensagens e Métodos.
 Tradicionalmente
– Softwares são formados por dados e
procedimentos independentes.
Paradigma de Orientação a Objetos
 Paradigma OO
– Softwares são formados, principalmente, por:
Objetos
– parte interna (define o comportamento do
objeto, ou seja, especifica os métodos
associados ao objeto).
– parte externa (interface - maneira que o
objeto se apresenta para outros objetos)
Mensagens
– Diminuir o gap semântico.
Paradigma de Orientação a Objetos
Paradigma de Orientação a Objetos
 O desenvolvimento orientado a objetos evoluiu no
sentido: PROGRAMAÇÃO
ANÁLISE
 Conceitos desse paradigma foram introduzidos com o
surgimento da linguagem Smalltalk;
 Em seguida, surgiram métodos de projeto para dar
suporte à implementação de sistemas orientados a
objetos;
 Recentemente, propostas de métodos para análise e
projeto vêm emergindo.
Histórico
 A OO surgiu no final da década de 60, quando dois
cientistas dinamarqueses criaram a linguagem Simula
(Simulation Language).
 1967 - Linguagem de Programação Simula-67-
conceitos de classe e herança.
 O termo Programação Orientada a Objeto (POO) é
introduzido com a linguagem Smalltalk (1983).
 FINS DOS ANOS 80  Paradigma de Orientação a
Objetos: abordagem poderosa e prática para o
desenvolvimento de software
Histórico
 Linguagens híbridas:
– C++ (1986), Object-Pascal (1986).
 Métodos de Análise e Projeto OO
– CRC (Class Responsability Collaborator, Beecke e 
Cunningham, 1989).
– OOA (Object Oriented Analysis, Coad e Yourdon, 1990)
– Booch (1991).
– OMT (Object Modeling Technique, Rumbaugh, 1991).
– Objectory (Jacobson, 1992).
– Fusion (1994).
– Unified Modeling Language – “Notação” (UML, 1997).
Benefícios Principais
 Reusabilidade.
 Redução da Complexidade.
 Garantia de Integridade.
Processo de Construção de 
Sistemas
 Reusabilidade transforma o processo de construção
de sistemas.
Processo semi-artesanal.
antes
Processo de Montagem
 Reutilização de
componentes já
testados existentes
em uma Biblioteca de
Classes.
depois
Processo de montagem
semelhante ao da 
indústria mecânica.
Ganhos Decorrentes da 
Reusabilidade
 Aumento de produtividade 
– uso de bibliotecas de classes;
– mecanismos de herança.
 Aumento de qualidade
– uso de componentes testados e aprovados.
Redução de Complexidade
 Maior facilidade de transição entre as fases:
– mesmo paradigma desde a análise até a 
implementação;
– não existe necessidade de conversões de 
modelos a cada fase.
Redução de Complexidade
 Facilidade de modularização:
– delimitação clara e precisa das fronteiras
entre os objetos.
 Facilidade de manutenção
– operações residem em um único lugar, não
estando espalhadas e repetidas pelos
programas.
Garantia de Integridade
 Estruturas de dados só podem ser usadas por suas 
próprias operações.
Paradigma de Orientação a 
Objetos
Orientação a Objeto - Paradigma
 Enfoque, que representa o mundo real com 
objetos e suas interações.
Orientação a Objeto - Paradigma
 Coisas do mundo real: mesas, papéis, animais.
 Objetos têm propriedade.
 Mesa
– Feita de madeira;
– Tem uma altura;
– Tem uma localização.
 É possível exercer ações sobre objetos
– Criar, destruir, mudar a localização.
O que se ganha com Objetos?
 O comportamento do objeto é independente da
representação interna dos dados;
 Dados são protegidos contra acesso indevido;
 Acesso, checagem de erro, etc., são
concentrados em um único lugar;
 Extensibilidade, mudança de representação e
adição de novo funcionamento pode ser feito de
maneira incremental e com mínimo distúrbio no
sistema como um todo.
O que é Software OO?
 Software organizado como uma coleção de
objetos interdependentes cada um fornecendo
um serviço específico através de sua interface;
 Objetos são entidades comuns do domínio da
aplicação;
 Sistemas modelam diretamente a interação entre
estes objetos no ambiente computacional.
OO - Benefícios
 Os conceitos de OO:
– Facilitam a reutilização de código;
– Forçam a modularização dos sistemas e;
– Oferecem suporte a dados complexos e
programação baseada em eventos.
OO - Terminologia
 A programação OO apoia-se basicamente nos
princípios de:
– Objeto;
– Abstração;
– Mensagem;
– Polimorfismo;
– Herança;
– Classe;
– Encapsulamento;
– Método;
– Instancia.
Abstração
 Mecanismo utilizado na análise de um domínio.
 Através dela, o indivíduo observa a realidade e dela
abstrai entidades, ações, etc. consideradas essenciais
para uma aplicação, excluindo todos os aspectos
julgados irrelevantes.
 Exemplo:
– Fotografia por satélite (imagem da realidade), despida de
alguns aspectos (por exemplo, cor, movimento).
– Da foto, pode-se abstrair um mapa, que elimina diversas
propriedades da foto (detalhes particulares de um edifício ou
praça). O mapa pode ser a base para abstrair um grafo.
Abstração
“a beleza está nos olhos de quem a vê”
 O resultado de uma operação mental de abstração depende não
tanto do fenômeno observado, mas do interesse do observador.
Abstração
“a beleza está nos olhos de quem a vê”
O que é isto???
É o Frajola???
É um gatinho???
É um mamífero???
É um 
felino???
É um peludo???
É um ladrão???
Abstração
“a beleza está nos olhos de quem a vê”
Depende do ponto de vista:
 Dona: animal de estimação;
 Veterinário: um sistema de órgãos;
 Piu-Piu: um inimigo.
➢ É o princípio de ignorar aspectos de um assunto não relevante
para o propósito em questão, tornando possível uma
concentração nos assuntos de maior interesse.
➢ É como se estivéssemos observando, com um binóculo, um
elemento, por um de seus lados apenas (aquele que interessa
no momento).
➢ Uma abstração permite capturarum determinado aspecto
existente em uma realidade, eliminando detalhes irrelevantes.
Acho que 
vi um 
“gatinho”...
Abstração
“a beleza está nos olhos de quem a vê”
 Diferentes abstrações a partir de um mesmo objeto do 
mundo real.
Maça
Peso
cor da casca
format
CATEGORIA
Receita
AÇÃO
3
I, II,
Cardinalidade
do conjunto
ATRIBUTO
Operações de Abstração: relevantes 
para a modelagem conceitual
 Classificação (Instanciação)
– categorização dos objetos em grupos e/ou classes
(categoria), com base em algum conjunto de propriedades
comuns.
– Reúne as propriedades comuns a um conjunto de conceitos.
– Abstrai todas as características que não são compartilhadas
por todos. De um grupo heterogêneo busca um conceito
comum.
 Exemplo: a classe Jornal define propriedades comuns aos
objetos “Correio Brasiliense”, “Folha de São Paulo”, ... O
resultado da aplicação da abstração de Classificação sobre um
conjunto de objetos é uma Classe de Objetos.
 Generalização (Especialização)
– a partir de duas categorias abstrai-se uma categoria mais
genérica. Sub-categorias satisfazem todas as propriedades
das categorias de que elas constituem especializações.
– Deve existir pelo menos uma propriedade que distingue duas
categorias especializadas.
Operações de Abstração 
relevantes para a modelagem conceitual
 Agregação (Decomposição)
– composição de uma nova categoria como um
agregado de categorias pré-existentes.
– instâncias de uma categoria (Estudante) são
compostas por instâncias de outras categorias
(Nome, Endereço).
Classificação/Instanciação
Estudante
de
Graduação
José Maria
CLASSIFICAÇÃO
INSTANCIAÇÃO
CATEGORIA
INDIVÍDUO
(Objeto)
Classificação/Instanciação
Estudante
de
Graduação
CATEGORIA
José Maria
CLASSIFICAÇÃO
INSTANCIAÇÃO
Membro
do
Coral
INDIVÍDUO
(Objeto)
Generalização/Especialização
Estudante
GENERALIZAÇÃO
ESPECIALIZAÇÃO
(herança)
CATEGORIA
CATEGORIA
Estudante
de Pós-
Graduação
Estudante
de
Graduação
Generalização/Especialização
Mamífero
GENERALIZAÇÃO
ESPECIALIZAÇÃO
(herança)
CATEGORIA
CATEGORIA
Baleia
Atributos
•sangue quente
•vertebrado
•vivíparo
Atributos
•Habitat: mar
•Tempo médio de
vida: 200 anos
Agregação/Decomposição
Casa
AGREGAÇÃO
(composição -
síntese)
DECOMPOSIÇÃO
(refinamento -
análise)
CATEGORIA
CATEGORIA/COMPONENTE
ParedePorta
Aspectos OO
 Modelo de Objetos
– Objeto;
– Mensagem;
– Método.
 Classe
 Atributo
 Protocolo
 Classificação
 Herança
 Encapsulamento/Ocultamento de Informação
 Polimorfismo.
Objeto
 Tudo em Orientação Objeto é OBJETO;
 Objeto, no mundo físico, é tipicamente um produtor e
consumidor de itens de informação: exemplo: máquina,
comandos, arquivos, pessoas, sinais.
 Definição (mundo do software):
– “Qualquer coisa, real ou abstrata, a respeito da qual
armazenamos dados e métodos que os manipulam”
Martin, Odell (1995);
– Abstração de uma entidade do mundo real de modo
que essa entidade possui várias características;
 Exemplo: objetos: cachorro e casa.
Objeto
• Substantivo (entidade do mundo real).
• Uma ocorrência específica (instância) de uma entidade.
• Um “Pacote” que contém procedimentos e dados
relacionados.
•Todo objeto tem:
Identidade
Estado
Comportamento
Objeto
• Identidade é a propriedade que distingue um objeto
dos outros (Obrigatório). Esta identidade de objeto deve
ser única, uniforme e independente do conteúdo do
objeto.
• Estado é o conjunto das propriedades de um objeto e
seus valores atuais (Opcional).
• Comportamento é representado pelas ações e reações
do objeto em termos de seu estado e de troca de
mensagens (Opcional).
Estado de um Objeto
 O conjunto dos valores dos atributos de um objeto em
determinado tempo que define o seu estado.
nome,
nascimento,
profissão,
. . .
Pedro
14/05/68
marceneiro
Comportamento de um Objeto
 Representado por uma abstração, algo com limites
nítidos e significado em relação ao problema em
causa.
 As funcionalidades de um objeto estão
relacionadas ao seu comportamento.
 Um objeto sabe como executar o seu trabalho e
possui informação dentro de seu próprio escopo.
CACHORRO
•Raça
•cor
•pedigree
CASA
 OBJETO: Entidade independente, composta por um
conjunto de elementos que a caracterizam (domínio) e
as ações que agem sobre esse domínio (operações);
 OBJETO
DOMÍNIO
+
OPERAÇÕES
Objeto
Visão implementacional (Takahashi, 1990)
 Entidade composta por:
– ESTADO INTERNO: é onde os valores podem
ser armazenados e modificados ao longo da vida
do objeto, caracterizando seu domínio;
– COMPORTAMENTO: é o conjunto de ações pré-
definidas (denominadas métodos) através das
quais o objeto responderá a demanda de
processamento por parte de outros objetos.
Objeto
 Objeto é algo DINÂMICO: é criado por alguém, tem
uma vida, e morre ou é morto por alguém;
 Pode ter vida temporária (como a execução de um
programa) ou persistente (persistirá até que seu
desaparecimento seja explicitamente ordenado).
Objeto
Mapeamento
Abstração Implementação
DOMÍNIO
+
OPERAÇÕES
ABSTRAÇÃO
ATRIBUTOS
(Dados)
+
MÉTODOS
(Procedimentos)
IMPLEMENTAÇÃO
<Nome do Objeto>
<Atributos>
<Métodos>
Objeto
Objeto
 Resumindo:
– Pacote de informações (atributos) e a descrição de suas
operações (métodos), de modo que elas são intrínsecas
ao seu domínio e este é formado pelos elementos que o
caracterizam.
– Exemplo:
 Objeto: Pessoa
 Atributos: Nome, Data de
Nascimento, Cor
 Métodos: Acordar, Comer, Beber
Dormir.
Objeto: Pessoa
Nome
Data 
Nascimento
Cor
Acordar
Comer
Beber
Dormir
Objeto
 Exemplo
– uma Pessoa e um Carro podem ser considerados
como um objeto de dados no sentido de que
qualquer um deles pode ser definido em termos
de um conjunto de atributos e operações.
 Objetos podem relacionar-se um com o outro;
 Uma Pessoa pode possuir Carro, onde o
relacionamento possuir define uma conexão
específica entre Pessoa e Carro.
Objeto
=
Atributos (Dados)
+ 
Métodos (Funcionalidade)
+
Encapsulamento
Objeto
Exemplos de Objeto
 Uma fatura;
 Uma organização;
 Uma tela com a qual o usuário interage;
 Um desenho de engenheiro;
 Um avião;
 Um vôo de avião;
 Uma reserva num avião;
 Um processo de atendimento de pedidos;
 Um computador;
 Um ser humano neurótico pode ser estereotipado como um
objeto: possui memória em que valores podem ser
armazenados e que condicionarão seu comportamento.
Exemplos de Objeto
“Revista 4x4 e Cia” é uma INSTÂNCIA da Classe 
Revista, ou seja, um OBJETO dessa classe. 
… 
//Instanciando um Objeto da Classe Revista 
Revista revista4x4 = new Revista(); 
… 
Atributos
 Representam um conjunto de informações, ou seja,
elementos de dados que caracterizam um objeto;
 Descrevem as informações que ficam escondidas
em um objeto para serem exclusivamente
manipulado pelas operações daquele objeto;
 São variáveis que definem o estado de um objeto,
ou seja, são entidades que caracterizam os objetos;
 Cada objeto possui seu próprio conjunto de
atributos;
Atributos
 Exemplos:
– Objeto Pessoa
Atributos: Nome, Cor, Data de Nascimento.
– Objeto Empregado
Atributos: Nome do empregado, nome do
departamento, salário, endereço,
dependentes.
Atributos
 Definem as características
do objeto.
 Um objeto pode ser
composto por um ou mais
atributos, que pertencem
apenas a ele e não
dependemde qualquer
outra estrutura
complementar.
Classe
Atributos
Métodos
Dicionário
Objeto do mundo Real
Objeto: Dicionário
Atributos: Código
Título,Editora.
Adicionar Palavra
Eliminar Palavra
Encontrar Palavra
Imprimir definição
Atributos
Atributos
 Um valor armazenado pelos objetos da classe
– PESSOA: nome, idade, peso, cor.
– CARRO: cor, peso, ano, modelo.
– Cada atributo possui um valor para cada instância.
– João tem 24 anos e Maria tem 40.
 Não se deve explicitar identificadores (características
de programação - não têm significado intrínseco)
– Não confunda identificadores internos com atributos
do mundo real;
Atributos
– O número do seguro social, número da chapa do
carro, número do telefone, RG não são
identificadores internos. ELES são atributos, pois
têm significado no mundo real. ATRIBUTOS
LEGÍTIMOS.
Identificação de Objetos
 O processo de análise para identificação dos
objetos e classes  DIFÍCIL 
 Basicamente a mesma tarefa realizada na análise e
no projeto de sistemas (Análise Estruturada).
 Os domínios de aplicação que naturalmente
refletem entidades concretas do mundo real se
beneficiam da abordagem OO.
Identificação de Objetos
 Objetos podem ser:
– Entidades Externas que produzem ou consomem
informações (outros sistemas, pessoas).
– Coisas que fazem parte do domínio (relatórios, displays,
cartas).
– Eventos que ocorrem no contexto do sistema (transferência
de propriedade).
– Papéis desempenhados por pessoas (gerente, engenheiro,
vendedor).
– Unidades organizacionais (grupo, equipe).
– Lugares que estabelecem o contexto do problema (piso de
fábrica, área de descarga).
Classificação
 Categorização em Classes: Quando estamos modelando
um domínio (problema), observamos que há várias
entidades similares que podem ser abstraídas em um
conceito único que engloba esta similaridade;
 Operação de abstração das Similaridades;
 A Programação Orientada a Objeto incorporou esta
operação através da abstração dos atributos e dos
métodos que caracterizam objetos semelhantes,
especificando-os na CLASSE;
 Exemplo:
– Classificação de espécies em Zoologia.
Classe
 Objeto: abstração de uma entidade do mundo real,
através dos atributos e operações;
 Classe: abstração de um conjunto de objetos
similares do mundo real;
 Agrupamento de objetos similares. Descreve a
– estrutura de dados, e o
– comportamento de objetos similares.
 Todo objeto é uma instância de uma Classe;
 Todas as instâncias de uma classe têm valores
próprios para os atributos especificados na classe;
Classe
 Os objetos representados por determinada classe
diferenciam-se entre si pelos valores de seus
atributos;
 Sistema puramente OO, Classe é também um
Objeto.
 É o agrupamento de objetos que possui uma certa
correlação entre atributos e serviços.
•Exemplo: Automóvel (Classe)
Um objeto é uma instância de uma classe
Identidade
Classe
Classe
Classe: representa um
“gabarito” para muitos
objetos e descreve como
estes objetos estão
estruturados internamente.
Ela define os atributos e
comportamentos comuns
compartilhados por um tipo
de objeto.
Classe
 Conjunto de objetos que possuem propriedades semelhantes
(ATRIBUTOS), o mesmo comportamento (MÉTODOS), os
mesmos relacionamentos com outros objetos e a mesma
semântica.
 Todo objeto é instância de apenas uma única classe.
– PESSOA, CARRO, CASA, VEÍCULO;
– EMPRESA, PAÍS, SERES HUMANOS, HOMENS, MULHERES,
MEIO DE TRANSPORTE.
 Uma vez que uma instância de uma classe é criada, se
comporta como todas as outras instâncias de sua classe.
Representação 
de Classes
pessoas
Pedro
14/05/68
marceneiro
pessoas
Carla
25/10/71
médica
pessoas
Paulo
22/08/64
motorista
pessoas
João
10/10/75
marceneiro
pessoa
nome
nascimento
profissão
dançar
pular
vestir
Instâncias
Na definição de uma classe, descreve-se que propriedades -- ou
atributos -- o objeto terá e os métodos aplicados a eles. Os atributos são
nomeados e armazenam o estado abstrato de cada objeto.
Classe
 Similar a um TAD (Tipo-Abstrato-de-Dados): pode ser
usado como base para a criação de objetos que
sejam entidades executáveis com atributos e
operações (métodos) da classe.
 Sua especificação é uma especificação da interface
na qual as partes visíveis da entidade são expostas.
 Os objetos criados podem ter outros atributos e
procedimentos privativos  não aparecem na
especificação.
DicionárioRelatórioBíblia
Livro
Classe
CASA
Portas Quartos
Salas Localização
Cozinha Telhado
Reformar
Limpar
Pintar
Mobiliar
Classe
Características
 Exemplo de objeto do mundo real
– “a coisa em que você está sentado agora”
Cadeira Mobiliário
É membro - (instância)
de uma classe maior de
Objetos.
Classe
Mobiliário
Custo
Peso
Dimensões
Localização
Cadeira
Atributos
(Propriedades)
herda
Cor
Comprado
Vendido
Modificado
Operações
(Serviços e
Métodos)
 O Objeto Cadeira é um membro (INSTÂNCIA) de uma
CLASSE maior de objetos – MOBILIÁRIO.
 CLASSE de objetos descreve um conjunto de objetos
que possuem:
– propriedades semelhantes (ATRIBUTOS);
– mesmo comportamento (MÉTODOS);
– mesmos relacionamentos com outros objetos;
– mesma semântica.
Classe
 Atributos GENÉRICOS da classe MOBILIÁRIO:
– custo, dimensões, peso, localização, cor.
 Atributos se aplicam a todos os objetos da classe
MOBILIÁRIO: mesa, cadeira, sofá, armário.
 Uma vez que o objeto CADEIRA é um membro da
classe MOBILIÁRIO, HERDA todos os atributos
definidos para a classe.
– Comprado;
– vendido, pesado;
– modificado (pintar de roxo, serrar uma perna).
Classe
O objeto herda todos os 
atributos e as operações
da classe
Classe:
Mobiliário
Custo
Dimensões
Peso
Cor
Localização
Comprar
Vender
Pesar
Modificar
Classe:
Cadeira
Custo
Dimensões
Peso
Cor
Localização
Comprar
Vender
Pesar
Modificar
Classe:
Mesa
Custo
Dimensões
Peso
Cor
Localização
Comprar
Vender
Pesar
Modificar
<Nome da classe>
<Atributos>
<Operações>
Classe
Exemplo de uma Classe 
Java
Exemplo de uma Classe 
Java
Class Abastecimento {
float litros;
float custo;
date horário;
}
Exemplo de uma Classe 
Java
public class Contador {
private int num;
private int inicio;
public Contador(int valorInicial) {
inicio = valorInicial;
num = inicio;
}
public void incrementa() {
num = num + 1;
}
public int mostraNum() {
return num;
}
}
Atributos
Métodos
Instanciando uma Classe
 Em Java as classes são instanciadas através do comando
new. A execução do comando cria um objeto e retorna uma
referência.
• A variável abastecimentoA armazena o identificador do
objeto.
• Antes de criar um objeto é necessário criar a variável
onde o identificador será armazenado.
 O objeto CADEIRA e outros da mesma classe
ENCAPSULA:
– Dados (os valores dos atributos que definem
a cadeira);
– Operações (as ações aplicadas para mudar
os atributos da cadeira).
Classe
CASA
Portas Quartos
Salas Localização
Cozinha Telhado
Reformar
Limpar
Pintar
Mobiliar
PRAIA FAVELA MANSÃO
Limpar Piscina
Contratar Criadagem
Piscina
Quadras
(Superclasse)
(Subclasse)
Especialização
Generalização
Animal
Selvagem Doméstico
Gato Cão
De Raça Vira-Lata
Rex
superclasse
subclasse
Objeto Rex
instância da classe Vira-Lata
Hierarquia de Classes
Herança
 Mecanismoque permite definir uma nova classe (subclasse) a
partir de uma classe já existente (superclasse).
 Ao se estabelecer uma Especialização (subclasse) de uma
classe, a subclasse herda as características comuns da
superclasse, isto é, a especificação dos atributos e dos métodos
da superclasse passam a fazer parte da especificação dos
atributos e dos métodos da subclasse.
– A subclasse pode adicionar novos métodos, como também
reescrever métodos herdados.
 Habilidade de um objeto derivar seus atributos (dados) e
métodos (funcionalidade) automaticamente de outro objeto.
Seres Humanos
Nome
Data_Nascimento
RG
Mulher
Data_Último_Parto
Homens
Certif_Reservista
Herança - Exemplo
Herança - Exemplo
Herança
 Classes podem ser construídas a partir de outras já
existentes; facilita extensibilidade;
 Quando uma mensagem é enviada para um objeto:
– A procura do método correspondente começa pela
classe do objeto;
– Se o método não for encontrado, a procura continua
na superclasse.
Herança
 A Herança pode ser de dois tipos:
– Herança Simples: quando uma classe é subclasse
de somente uma superclasse;
– Herança Múltipla: quando uma classe é subclasse
de várias superclasses e conseqüentemente herda
as características de cada uma delas.
Herança
 Processo de Herança
– Gera uma nova classe a partir de uma classe (Herança
Simples) ou várias classes (Herança Múltipla);
– A subclasse herda da super-classe:
 variáveis de instância (Atributos);
 Métodos.
– Na subclasse pode-se:
 acrescentar variáveis de instância (atributos) e métodos
(propriedades);
 redefinir/inibir propriedades herdadas.
Veículo
Veículo de 
Rodas
Veículo à 
Motor
Veículo 
Aéreo
Bicicleta Caminhão Vapor PlanadorAvião
Caminhão 
VW
Caminhão
Ford
Caminhão 
GM
Herança - Exemplo
Veículos
Terrestres Aéreos Aquáticos
E
S
P
E
C
I
A
L
I
Z
A
Ç
Ã
O
G
E
N
E
R
A
L
I
Z
A
Ç
Ã
O
Carro
Moto
Iate
Lancha
Avião
Helicop
(Classe Base)
(Classes Derivadas)
(Objetos)
Exemplo: Sistema de Administração Universitária
Pessoa
Estudante Docente Funcionário
Graduação Pós-Graduação
Assistente
Herança
Múltipla
Nome, Data de Nascimento. RG
Nascer, Comer, Dormir, Morrer
Matrícula (registro)
Cursar
Herança
pessoa
cliente funcionário
horista mensalista
Super-Classe de
cliente e funcionário
subclasse de 
pessoa
Super-Classe 
de
horista e 
mensalista
Herança Múltipla
Veículo
Terrestre Aquático
Anfíbio
Super-Classe de 
Terrestre e Aquático
Subclasse de 
Veículo
Super-Classe
de Anfíbio
Super-Classe
de Anfíbio
Subclasse de 
Terrestre e Aquático
Exemplo de Herança em Java
class Pessoa 
{
String nome;
int peso;
}
class Funcionario extends Pessoa 
{
float salario;
}
Exemplo de Herança em Java
public class Empresa 
{
public static void main(String args[])
{
Funcionario func = new Funcionario();
func.nome = “Joao da Silva”;
func.peso = 70;
func.salario = 2000.00f;
System.out.println(“Funcionario “ + func.nome + 
“ Salario “ + func.salario);
Pessoa p1 = new Pessoa();
p1.peso = 60;
p1.nome = “Pedro”;
p1 = func; // OK
func = p1; // Oops!
}
}
Relacionamento entre Classes
 Associação;
 Especialização / Generalização;
 Agregação / Decomposição.
Associação 
 Define uma relação contextual entre classes;
 Para representar o fato de que objetos podem se relacionar uns
com os outros, utiliza-se a associação.
 Representa que duas classes possuem uma ligação (link),
significando por exemplo que elas "conhecem uma a outra”.
 Pode haver mais de uma associação (com nomes diferentes)
entre o mesmo par de classes.
 Possui um nome (junto à linha que representa a associação),
normalmente um verbo.
pessoa empresaÉ cliente
funcionário empresapertence
 Para melhor esclarecer o significado de uma
associação é definido três recursos de notação:
– Nome da associação: fornece algum
significado semântico a mesma.
– Direção de leitura: indica como a associação
deve ser lida.
– Papel : para representar um papel específico
em uma associação.
Nome de associação, direção de 
leitura e papéis
Exemplo:Nome de associação, direção 
de leitura e papéis
contratante
*
contratado
*
Contrata
Organização Indivíduo
Papel
Nome da
associação
Papel
Direção
de leitura
Empresa Pessoa
Trabalha-para
Empregaempregador empregado
Associação - Multiplicidade 
 O mesmo que Cardinalidade. Valores possíveis.
1 Exatamente 1
0..* Zero ou mais (opcional)
1..* Um ou mais (obrigatório)
0..1 Zero ou um
5..8 De 5 a 8
4..7, 9 De 4 a 7 + 9
Exemplo: Multiplicidade 
Cliente Pedido
1 0..*
efetua
Composição
 Permite a definição de um conceito complexo a partir da
combinação de conceitos mais simples.
– Composição pode ser recursiva.
Especialização
 Criação de uma
nova classe, a
partir de outra já
existente, com
novos atributos que
a tornam mais
restrita. É o
relacionamento
entre uma super-
classe e suas
subclasses.
 pessoa
nome
nascimento
profissão
calculaIdade()
cliente
limiteCrédito
funcionário
contratação
matrícula
calculaSalario()
mensalista
salario
horista
valorHora
Agregação
 É a operação inversa da Especialização;
 É a remoção de uma ou mais características de
determinada classe, de modo a formar uma classe mais
abrangente;
 É o ato de agregar duas ou mais classes para formar
uma nova classe;
 É representado por um relacionamento do tipo “é-uma-
parte-de”, ou “tem-um”;
 Indica o sentido de navegabilidade (leitura) entre os
objetos;
Agregação
Micro
monitor mouse teclado gabinete
CPU RAM fonte
Exemplo:
Super-Classes de 
Gabinete
Sub-Classe de 
Gabinete, Teclado,etc
Mensagem
 É o mecanismo através do qual os objetos se comunicam,
invocando as operações desejadas. Especificação de
uma operação do objeto. É composta por:
– Seletor:
 nome simbólico que descreve o tipo da operação;
 descreve O QUE o objeto que envia quer que seja
invocado, não como deveria ser invocado;
 o objeto recebedor da mensagem contém a descrição de
COMO a operação deveria ser executada;
– Parâmetros:
 argumentos que uma mensagem pode conter que faz parte
da operação e requer uma ordem única.
Coma cogumelos!
Comer
Objeto: Animal
Mensagem: COMA COGUMELOS
Seletor: COMA
Parâmetros: COGUMELOS
Animal
Pessoa
Objeto que recebe
RECEPTORObjeto que envia
EMISSOR
Determina o que deve ser manipulado e 
aguarda o retorno do objeto que foi ativado
Determina como
manipular
Mensagem
 Um objeto (Emissor) envia uma mensagem a outro (Receptor)
que executará o serviço;
 Métodos são invocados por Mensagens;
 Exemplo
– A chamada de um procedimento/função em Linguagem de
Programação é uma aproximação inicial de uma
mensagem, como em P(10,20), onde P é o seletor e os
valores 10 e 20 são os parâmetros.
– Diferença:
 a ação da mensagem a ser ativada depende
essencialmente do objeto que receber a mensagem.
 Para enviar uma mensagem deve-se:
– identificar o objeto que receberá a mensagem;
– identificar o método que o objeto deve executar;
– passar os argumentos requeridos pelo método.
Mensagem
 Os objetos se comunicam enviando mensagens.
 Métodos são procedimentos que são invocados
enviando-se mensagens (chamada de função) para
as instâncias da classe.
Dados Dados Dados
Métodos Métodos Métodos
Mensagens
Evento do 
MundoReal
Evento de 
Saída
Exemplo de uma Mensagem Java
public class TesteContador {
public static void main (String args[]) {
Contador c = new Contador(10);
c.incrementa();
System.out.println (c.mostraNum());
c.incrementa();
System.out.println (c.mostraNum());
}
}
mensagem
Exemplo de uma Mensagem Java
class Contacorrente {
public void sacar (float valor) { 
// Codigo do método}
// restante da definição da classe // 
}
Class Contapoupança {
public void sacar (float valor) {
// código do método // }
// definição do restante da classe
} 
// as classes são instanciadas agora
Contacorrente a = new Contacorrente ();
Contapoupança b = new Contapoupança();
// Enviando mensagens para os objetos
a.sacar(100); // executado sacar() definido em 
Contacorrente. 
b.sacar(200); // executado sacar() definido em 
Contapoupança.
Métodos
 Origem: Linguagem de Programação Smalltalk;
 Quando um objeto é mapeado dentro do domínio do
software, os processos que podem mudar a sua
estrutura de dados são denominados Operações ou
Métodos;
 Métodos são invocados por Mensagens;
 Cada objeto possui seu próprio conjunto de métodos.
Métodos
 Definições:
– São procedimentos definidos e declarados que
atuam sobre um objeto ou sobre uma classe de
objetos;
– Descrição de uma seqüência de ações a serem
executadas por um objeto;
– Através dos métodos que especifica-se a um
objeto COMO FAZER alguma coisa;
– São intrínsecos aos objetos e não podem ser
separados.
 Descrevem as ações que um objeto pode executar
ou seja suas funcionalidades.
 Os métodos definem os serviços que podem ser 
solicitados a uma instância.
 Verbo (ação - função).
andar,
correr,
vestir
. . .
Métodos
Objeto
Método
Método
Método
Método
Dados
Métodos
Estrutura Geral
Classe, Atributos e Métodos
Classe das contas correntes
número
banco
agencia
nome
saldo
Depositar ( )
Sacar ( )
Métodos
Atributos
Estrutura Geral
Contador
int num
int início
void incrementa()
int mostraTotal()
métodos
dados (ou atributos)
Estrutura Geral Visibilidade
 Os atributos e os métodos de uma classe podem
ser públicos ou privados.
 Os atributos públicos podem ser acessados a partir
de métodos membros das classes ou de métodos
membros de outras classes.
 Os atributos privados estão encapsulados dentro da
classe, só podendo ser acessados a partir dos
métodos membros da classe.
Estrutura Geral Visibilidade
 Os métodos públicos podem ser chamados tanto a
partir de outros métodos da mesma classe quanto a
partir de métodos membros de outras classes.
 Os métodos privados só podem ser chamados a
partir de métodos membros da mesma classe.
 Em JAVA as palavras-chave private e public são
usados para determinar a visibilidade dos atributos
e métodos.
Estrutura Geral Visibilidade
 Os métodos públicos definem a interface com as
instâncias.
 Os métodos privados são úteis quando é
necessário definir trechos de código que
precisam ser executados a partir de mais de um
método da classe, mas não a partir de outras
classes.
Estrutura Geral Visibilidade
Privado: restringe o acesso apenas à classe
Protegido: restringe o acesso à classe e às 
subclasses.
Público: permite acesso a todos e a qualquer 
um.
Exemplo Public e Private
public class Contador {
private int num;
private int inicio;
public Contador(int valorInicial) {
inicio = valorInicial;
num = inicio;
}
public void incrementa() {
num = num + 1;
}
public int mostraTotal() {
return num;
}
}
Interface
 Objetos se comunicam através de Mensagens, que
invocam os Métodos desejados;
 Parte Privada do Objeto (Visão Interna)
– Métodos;
– Atributos;
 Parte Compartilhada do Objeto ou Interface
– corresponde à parte externa do objeto, isto é,
àquela que é vista por outros objetos com a
finalidade de invocar os métodos que o objeto
realiza;
Interface
– agrupa um conjunto de mensagens que o objeto
pode responder;
– as mensagens especificam quais operações sobre
o objeto podem ser realizadas, mas não como a
operação será executada.
Estrutura de um Objeto (classe)
<Nome do Objeto>
<Atributos>
<Métodos>
Interface
<Métodos>
Parte Privada
Ocultamento de 
Informação (Information Hiding)
 Característica que visa esconder
detalhes de implementação
 É alcançado em OO, visto que o
objeto, quando implementado,
possui uma parte privada
(atributos e métodos) e uma parte
compartilhada (interface)
 Detalhes de implementação ficam
escondidos na parte privada.
informações
e 
operações
Encapsulamento
Ocultamento de Informação
(Information Hiding)
 Programadores podem introduzir mudanças na
implementação de um método sem afetar o
comportamento externo desse método.
 Cada componente de um programa deve agregar
toda a informação relevante para sua manipulação
como uma unidade (uma cápsula ou uma caixa-
preta).
Visão do mundo real:
• sempre escondemos do mundo externo alguns atributos
pessoais;
• definimos, através de ações se iremos ou não externar estes
atributos.
Salário
getSalário
Salário * 0.25
O Cunhado
Salário/2
O Leão do Imposto de Renda
salário/10
A namoradinha
Ocultamento de 
Informação (Information Hiding)
Encapsulamento de Dados
 Objetos encapsulam suas estruturas de dados
(atributos).
 Os atributos de um objeto só podem ser
manipulados pelos próprios métodos do objeto.
 Restringe a visibilidade do objeto mas facilita o
reuso.
 Os DADOS e os MÉTODOS são empacotados sob
um nome e podem ser reusados como uma
especificação ou componente de programa.
Encapsulamento de 
Dados: Exemplo
public class Pessoa
{
private double salario;
public double getSalario(Object quem_Pergunta)
{
if (quem_Pergunta instanceof Namorada)
{
return (salario / 2);
} 
if (quem_Pergunta instanceof Cunhado)
{
return (salario / 10);
} 
if (quem_Pergunta instanceof LeaoImpostoDeRenda)
{
return (salario * 0.25);
}
return (0.0); // esconde o salario do resto !!!
}
}
Polimorfismo
 Ao receber uma mensagem para efetuar uma Operação,
é o objeto quem determina como a operação deve ser
efetuada, pois ele tem o comportamento próprio.
 Como a responsabilidade é do Receptor e não do
Emissor, pode acontecer que uma mesma mensagem
ative métodos diferentes, dependendo da classe de
objeto para onde é enviada a mensagem.
 Permite a criação de várias classes com interfaces
idênticas, porém objetos e implementações diferentes.
 Capacidade de uma mensagem ser executada de acordo
com as características do objeto que está recebendo o
pedido de execução do serviço.
• É a propriedade de uma ou mais classes responderem a mesma
mensagem, cada uma de uma forma diferente.
•Exemplo:
• A função + :
• aplicada a dois números produz adição; a
• plicada a dois strings produz a concatenação.
Polimorfismo: Exemplo
class Contacorrente {
public void sacar (float valor) { 
// Codigo do método}
// restante da definição da classe // 
}
Class Contapoupança {
public void sacar (float valor) {
// código do método // }
// definição do restante da classe
} 
// as classes são instanciadas agora
Contacorrente a = new Contacorrente ();
Contapoupança b = new Contapoupança();
// Enviando mensagens para os objetos
a.sacar(100); // executado sacar() definido em 
Contacorrente. 
b.sacar(200); // executado sacar() definido em 
Contapoupança.
Polimorfismo: Exemplo
abstract class Funcionario {
// ... atributos// ... métodos
// método polimórfico que calcula desconto diferenciado
// recebe uma referencia do tipo da superclasse
public static double calculaDesconto (Funcionario func)
{
double desconto = 0; 
// se o parâmetro recebido for do tipo Gerente: 27% 
if (func instanceof Gerente) 
{
desconto = salario * 0.27;
} 
// se o parâmetro recebido for do tipo Secretária: 16% 
else if (func instanceof Secretaria) {
desconto = salario * 0.16;
}
return desconto
}}}
Acoplamento
 Associação ao nome de variável, o número de
bytes que ela ocupa, uma localização de memória.
 Associação ao nome de uma operação, o
endereço inicial de seu código.
 Pode ser feito de duas maneiras:
– Acoplamento antes da execução - “Early
Binding”: (durante a link edição).
Acoplamento
– Acoplamento tardio ou durante a execução -
“Late Binding”:
 permite que a linguagem tenha uma grande
flexibilidade, mas encarece o custo do tempo de
execução devido ao “overhead” da associação.
 quando uma mensagem é enviada a um objeto,
o método que deve responder a essa mensagem
é identificado dinamicamente, em tempo de
execução, na classe do objeto.
Acoplamento:Exemplo
class Funcionario
{
String nome; // atributos com acesso livre
double salario;
}
class Exemplo
{
public static void main (String args[])
{
Funcionario f = new Funcionario();
f.nome = “João”; // alteração direta do valor do atributo
f.salario = 1350.87;
}
}
Analogia dos conceitos principais na POO e 
no paradigma tradicional de programação
 Linguagens Orientadas a 
Objetos 
Objeto
Classe
Mensagem
Método
Interface
 Linguagens Tradicionais
Valor
Tipo Abstrato de Dados(TAD)
Chamada de Procedimento
Procedimento ou Função
Conjunto de nomes e funções para 
um fim específico.
Referências Bibliográficas
Exercícios Teóricos
1- Explique o que é objeto.
2- Cite e explique as propriedades de um objeto.
3- Escolha 3 objetos tangíveis, e identifique algumas de suas
características (somente atributos e operações): disciplina,
curso, carro, produto, cliente, aluno, livro, avião, medicamento,
funcionário, termômetro e pedido.
4- Explique o que é encapsulação e cite os principais benefícios
da encapsulação.
5- Explique e exemplifique as seguintes abstrações do
Paradigma OO: a) Classificação. b) Instanciação c)
Especialização.
6- Desenhe a representação de uma Classe e explique cada
uma das partes.
7- Defina herança e polimorfismo.
Exercícios Práticos
1) Suponha que, no programa que controla uma bomba
de combustível, exista uma classe que descreva os
abastecimentos. Sobre um abastecimento, são
armazenados as informações: custo do litro, número de
litros, custo do abastecimento. Utilizando os métodos
na classe, é possível: informar o custo do litro, iniciar
um abastecimento, incrementar o contador de litros,
encerrar um abastecimento. Uma vez encerrado um
abastecimento, é possível: obter o número de litros e o
custo do abastecimento. Implemente a classe descrita.
2) Implemente um catálogo telefônico. Utilizando o
catálogo será possível acessar as seguintes
informações: nome, telefone e endereço. Os elementos
do catálogo conterão informações sobre os assinantes.
Implemente uma classe onde seja possível inserir um
novo telefone, remover um telefone e procurar um
telefone a partir do nome do assinante.
Exercícios Práticos
3) Implemente um programa que armazene as seguintes
informações sobre os funcionários de uma empresa:
nomes, nomes dos departamentos onde trabalham,
números dos telefones destes departamentos,
endereços das filiais( rua, cidade, código postal , país).
As informações relacionadas poderão ser atualizadas e
pesquisadas e devem ser armazenadas.
Exercícios Práticos

Outros materiais