Você está na página 1de 21

Sistemas de Informao 2 Srie

Programao
Orientada a
Objetos

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / Programao
mudanas para compensar maior complexidade dos
programas;
no inicio os computadores eram programados por instrues
binrias (cabos ENIAC);
Assembly (baixo nvel);
Fortran (primeira de alto nvel);
Anos 60, programao estruturada;
POO;

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO / Simula


1966
Noruega
baseada em ALGOL 60
simulaes de sistemas c/ grande nmero de objetos;
serviu de base para TAD Tipos Abstratos de Dados;
serviu de base para SmallTalk;

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO / SmallTalk


Desenvolvida no Centro de Pesquisas da Xerox;
dcada de 70;
incorporao do princpio dos objetos ativos:
reao a
mensagens que ativam os
comportamentos
objetos deixam de ser apenas dados (sendo apenas
manipulados);
objetos agora so parte integrante da soluo (a computao
pode residir nos mesmos);
a mais popular.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO / Outras


C++, baseada em C;
Objetive-C, tambm baseada em C;
Pascal orientado a objetos;
Eiffel;
TOOL, no Brasil

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO / Comercializao


Smalltalk-80 -> ParcPlace empresa da Xerox;
Digitalk -> Digitalk.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO x Estruturada


POO
Simulao de modelos de sistemas:
Automao de escritrios;
Animao grfica;
Informtica educativa;
Instrumentos virtuais;
Editores de texto;
Bancos de dados;
etc.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Histrico / POO x Estruturada


Estruturada
Resoluo de problemas atravs de algoritmos:
Busca;
Otimizao e resoluo numrica de equaes.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

POO
Envolve conceitos comuns ao cotidiano:
objetos e atributos;
todos e partes;
classes e membros;
Pessoas empregam mtodos de organizao:
Diferenciao separao dos objetos atravs de suas
caractersticas rvore e computador;
Distino separao dos objetos do todo e da parte
carro e motor;
Formao de classes de objetos separao entre
bicicletas e motocicletas;

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

POO
implementada pelo envio de mensagens aos objetos;
Os objetos respondem ao estmulo de uma mensagem
desencadeando uma seqncia de execuo (computao reside
no objeto);
Durante a computao desencadeada por uma mensagem, o
objeto respectivo pode enviar outra(s) mensagem(ns) para
outro(s) objeto(s);
A execuo de um programa s termina quando todas as
mensagens enviadas tiverem as respectivas computaes
terminadas.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

POO x Extruturada
Geralmente onde se emprega a POO tambm se emprega a
Estruturada e vice-versa;
POO pode trazer mais facilidades;
Programadores mais experientes esto mais acostumados com
a programao estruturada (resistncia a mudana de
paradigma);
No confundir POO com Prog. Orientada a Eventos;

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

POO x Extruturada
O zelador pega a chave e abre a porta
Estruturada: Pensa-se automaticamente em como o zelador
faz para abrir a porta utilizando a chave (cada verbo vira um
procedimento);
POO: Pensa-se inicialmente nos objetos zelador, porta e
chave, nas suas caractersticas (atributos) e nas aes que
podem realizar (mtodos) (cada substantivo vira um objeto);
Pode-se perceber a dificuldade de um programador
acostumado a programao estruturada em mudar para POO.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Vantagens da POO
Sensvel reduo no custo de manuteno do software;
Aumento na reutilizao de cdigo;

Programao Estrutura tambm pode apresentar estas


caractersticas, tudo depende de como se programa, assim
como tambm vlido dizer que no basta utilizar-se da POO
para garantir os itens acima.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Objetos: qualquer indivduo, lugar, coisa, evento, tela,
relatrio ou conceito que seja aplicvel ao projeto do sistema.
Os objetos possuem dados e funcionalidades que definem seus
comportamentos. So instncias de suas respectivas classes.
Classe: Uma categoria de objetos semelhantes. Uma classe ,
na verdade, uma planta baixa a partir da qual os objetos so
criados.
Instncia: Sinnimo de objeto.
Instanciar: Criar uma instncia. Quando criamos um objeto
dizemos que o instanciamos a partir de uma classe.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Atributos: Valores guardados por um objeto ou uma classe.
Um atributo basicamente um nico dado ou informao. Os
atributos podem ser simples, como um nmero inteiro, ou
podem ser objetos complexos, como um endereo ou um
cliente. Cada objeto tem os seus prprios atributos que podem
diferenciar em contedo de um objeto para outro.
Mtodos: Procedimentos que um objeto ou classe realizam.
Um mtodo semelhante a uma funo ou procedimento em
uma programao estruturada. Pode-se ter o mesmo mtodo
implementado de vrias maneiras, o que ir diferenci-los a
mensagem passada para o objeto.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Abstrao: A definio da interface de uma classe (o que ela
sabe e faz)
Encapsulamento: O ocultamento da implementao do que
uma classe/objeto sabe ou faz, sem que seja dito como feito.
Mensagens: Informaes que so trocadas entre os objetos.
Interface: Projeto de comunicao entre a classe/objeto e o
mundo exterior. Grupo de mensagens que um objeto ou classe
vai responder.
Herana: Permite que tiremos vantagens das similaridades
entre classes representando relacionamentos do tipo ou

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Superclasse: Quando a classe B herda as caractersticas da
classe A dizemos que A uma superclasse de B.
Subclasse: No exemplo acima dizemos que B uma
subclasse de A.
Herana Simples: Quando a classe herda caractersticas de
uma nica classe.
Herana Mltipla: Quando uma classe herda caractersticas
de mais de uma classe.
Classe Concreta: Uma classe que possui objetos instanciados
a partir dela.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Classe Abstrata: Uma classe que no possui objetos
instanciados a partir dela.
Redefinio: Termo usado para indicar que redefinimos
atributos e/ou mtodos nas subclasses para proporcionar um
comportamento um pouco ou totalmente diferente.
Sobrecarga: Sinnimo de Redefinio.
Hierarquia de Classes: Um conjunto de classes relacionados
por meio de herana.
Raiz: A classe superior em uma hierarquia.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Persistncia: Diz respeito ao armazenamento permanente dos
objetos em disco.
Objeto Persistente: Um objeto que salvo em um
armazenamento permanente, tornando-o recupervel para uso
futuro.
Objeto Transitrio: Um objeto que no persistente.
Associao: Relacionamento entre objetos. Por exemplo,
clientes COMPRAM produtos.
Cardinalidade: Indica quantos objetos esto envolvidos em
cada lado de um relacionamento.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Agregao: Indica que um objeto composto por outros.
Exemplo: Um carro composto por vrios itens (pneus, peas,
assessrios)
Colaborao: Para que determinados objetos funcionem
adequadamente, precisam de uma maior interao com outros
objetos. Exemplo: Para que um carro aumente a velocidade, o
motor tem que aumentar a rotao, porm para que isto ocorra
o acelerador tem que responder ao estmulo do usurio.
Acoplamento: Nvel de dependncia de um objeto em relao
a outro, principalmente quanto aos detalhes de implementao.
Quanto menor melhor.

Sistemas de Informao 2 Srie


Programao Orientada a Objetos

Orientao a Objetos - Conceitos


Coeso: Quanto maior o esforo para explicar uma classe,
menor a coeso. As classes devem ser explicadas da forma
mais simples possvel, ou seja, quanto maior a coeso, melhor.
Polimorfismo: Diz respeito a possibilidade de tratar classes
diferentes como se fossem a mesma, ou seja, a prpria
linguagem se encarrega de saber qual a classe em questo.