Você está na página 1de 11

Bibliografia

LARMAN, Graig. Utilizando UML e padres.


Porto Alegre: Bookman, 2000.
STAA, Arndt von. Programao modular. Rio de
Janeiro: Campus, 2000.
BORATTI, Isaias Camilo. Programao
Orientada a Objetos. Florianpolis: Visual
Books 2001.
SCHMITZ, Eber; SILVEIRA, Denis.
Desenvolvimento de Software Orientado a
Objetos. Rio de Janeiro: Brasport, 2000.

Desenvolvimento Orientado a Objetos

Prof.: Edson dos Santos Cordeiro

Prof. Edson S. Cordeiro

Prof. Edson S. Cordeiro

11/08/2002

Bibliografia

Introduo

DEITEL, H. M.; DEITEL, P. J. Java: como


programar. Porto Alegre: Bookman, 2001.
McCARTY, Bill; GILBERT, Stephen. ObjectOriented desing in Java. Corte Madera, CA:
Mitchell Waite, 1999.
SEBESTA, R. W. Conceitos de linguagens de
programao. Bookman, 2000.
JAMSA, K.; KLANDER, L. Programando em
c/c++: a bblia. Makron Books,1999.

Primeiras linguagens surgiram em 50;


Simula no incio de 60 empregou conceitos
orientado a objetos;
Incio de 70 surgiu o conceito de Tipos de
Dados Abstratos (TDA):
Entre os anos 70 e 80, conceitos orientados a
objetos foram consolidados (SmallTalk).

11/08/2002

Prof. Edson S. Cordeiro

11/08/2002

Prof. Edson S. Cordeiro

O que voc v ?

O azul est na parte de dentro, esquerda


ou
na parte de fora, frente?

Katimba era um excelente


caador.

Depois de algum tempo.

Katimba ficou conhecido na


aldeia como um excelente
projetista de lanas.

Katimba somente projetava


lanas para atender sua
aldeia.
Katimba no tinha mais tempo
para caar.

Mais um tempo se passou.

Katimba continua projetando


lanas.

Ser que Katimba ainda um


bom projetista de lanas?

Modelagem Orientada a Objetos

Gap Semntico

Uniformizao dos formalizamos utilizados na


anlise e projeto.
Notao unificada (UML): utilizado uma
mesma notao entre as diversas fases do
projeto de desenvolvimento

Diferena entre Espao de Problemas e


Solues.

Espao de problema

Espao de soluo
Carro

Diminuir Gap Semntico

11/08/2002

Prof. Edson S. Cordeiro

11

11/08/2002

Prof. Edson S. Cordeiro

12

Abordagem Orientada a Objetos

Modelo Conceitual

 Tradicionalmente

Tarefa mais importante de um processo de


desenvolvimento de software:

 Softwares so formados por dados e procedimentos


independentes.

 Anlise e Modelagem do domnio da aplicao


independentemente da implementao.

 Paradigma OO
 Softwares so formados, principalmente, por:
 Objetos

parte interna (define o comportamento do objeto, ou seja,


especifica os mtodos associados ao objeto)
parte externa (interface - maneira que o objeto se apresenta
para outros objetos)

A tarefa de modelagem conceitual envolve dois


mecanismos:
 Abstrao e,
 Representao.

 Mensagens.

11/08/2002

Prof. Edson S. Cordeiro

13

Abstraes e Representaes

11/08/2002

Prof. Edson S. Cordeiro

14

Processo de Abstrao

Casa

11/08/2002

Prof. Edson S. Cordeiro

Classificao

15

11/08/2002

Prof. Edson S. Cordeiro

Processo de Abstrao

Processo de Abstrao

Classificao: categorizao dos objetos em grupos

Generalizao (Especializao)

e/ou classes (categoria), com base em algum conjunto


de propriedades comuns.

16

A partir de dois ou mais


objetos, abstrai-se uma
categoria mais genrica.
sub-categorias satisfazem
todas as propriedades das
categorias de que elas
constituem especializaes.
deve existir pelo menos uma
propriedade que distingue duas
categorias especializadas.

11/08/2002

Prof. Edson S. Cordeiro

17

11/08/2002

Prof. Edson S. Cordeiro

18

Processo de Abstrao
Generalizao

Processo de Abstrao
Agregao / Decomposio

Portas

Telhado

Composio de uma nova


categoria como um agregado
de categorias pr-existentes.

Janelas

Decomposio de uma
categoria agregada em
outras categorias atmicas.

Casa de campo

Especializao

Residencial
Casa de praia

11/08/2002

Prof. Edson S. Cordeiro

19

11/08/2002

Prof. Edson S. Cordeiro

Um objeto pode ser considerado uma coisa


que executa um conjunto de atividades;
Um conjunto de atividades que pode ser
executada pelo objeto define o comportamento
desse objeto;
Por exemplo: uma calculadora executa um
conjunto de atividades (somar, subtrair,
multiplicar, dividir ...). Esse conjunto de
atividades define como a calculadora pode se
comportar.

Um objeto como uma caixa preta


que pode receber e/ou enviar
mensagens;
Uma caixa preta pode conter cdigo
(uma seqncia de instrues de
computador) e dados (informaes
que so manipuladas pelas
instrues);
Note que instrues e dados so
mesclados em uma nica coisa
indivisvel: um objeto.

11/08/2002

Prof. Edson S. Cordeiro

21

O que so Objetos ?

11/08/2002

Qual seu
nome?

Prof. Edson S. Cordeiro

22

O que so Objetos ?
Como o objeto receptor interpreta as
mensagens enviadas por outro objeto?
Como as mensagens so processadas
pelo objeto?

 A interface do objeto consiste em um conjunto de


comandos;
 Cada comando executa uma ao especfica;
 Um objeto pode solicitar a outro objeto que execute
uma ao por meio do envio de uma mensagem;

11/08/2002

Prof. Edson S. Cordeiro

Mensagens

O que so Objetos ?
Mensagens

O que so Objetos ?

20

Meu
Mrio.

23

11/08/2002

Prof. Edson S. Cordeiro

24

O que so Atributos ?

O que so Atributos ?

 Todas as instncias de uma classe tm valores prprios


para os atributos especificados na classe;
 Os objetos representados por determinada classe
diferenciam-se entre si pelos valores de seus atributos.

 Representam um conjunto de informaes;


 Cada objeto possui seu prprio conjunto de atributos;
 So variveis que definem o estado de um objeto, ou
seja, caracterizam os objetos (situao do celular);
 Descrevem as informaes que ficam escondidas em
um objeto para serem exclusivamente manipulado
pelas operaes daquele objeto (Visibilidade Encapsulamento);

Classe

Monitor

Polegadas
Contraste
Brilho
SetPolegadas
Operaes GetPolegadas
SetContraste
GetContraste

Atributos

11/08/2002

DAEWOOD

SAMSUNG
SAMSUNG
SAMSUNG
SAMSUNG

15 polegadas
65
54

14 polegadas
polegadas
14
14
polegadas
14
65polegadas
65
65
65
55
55
55
55

Prof. Edson S. Cordeiro

Objetos
25

11/08/2002

Prof. Edson S. Cordeiro

O que so mtodos ?

O que Mensagem ?

Cada mensagem tem um cdigo (instrues)


associada a ela;
Quando um objeto recebe uma mensagem, um
cdigo (instrues) executado;
Em outras palavras, essas mensagens
determinam o comportamento do objeto e o
cdigo determina como o objeto ir responder a
cada uma das mensagens recebidas.

 Mecanismo de comunicao entre objetos atravs do


qual se desencadeia a execuo de uma tarefa.

11/08/2002

Prof. Edson S. Cordeiro

27

26

 As mensagens existem somente em funo dos


servios, e fazem o mapeamento:
 de um objeto para outro objeto;
 de um objeto para uma classe (criao de objetos) e,
 de uma classe para outra classe (criao de objetos
dentro de outros objetos).

11/08/2002

Prof. Edson S. Cordeiro

28

O que so mtodos ?

O que so mtodos ?

O cdigo associado a cada mensagem


chamado de mtodo;
Quando um objeto recebe uma mensagem, ele
determina qual mtodo ir responder e passa o
controle para esse mtodo;
Mtodos so similares s subrotinas,
procedimentos ou funes encontradas em
linguagens procedurais como C e Pascal.

Por exemplo: o nome de um mtodo similar


ao nome de uma subrotina e o cdigo do
mtodo similar ao cdigo encontrado em uma
subrotina;
Enviar uma mensagem para um objeto
similar a chamar uma subrotina.

11/08/2002

Prof. Edson S. Cordeiro

29

11/08/2002

Prof. Edson S. Cordeiro

30

O que so Objetos ? Parte II

O que encapsulamento ?

Cada objeto precisa manter as informaes de


como executar um determinado
comportamento;
Apenas os mtodos de um objeto podem
manipular os valores armazenados em suas
variveis.

Problema:
 O que fazer quando o programa atinge
milhares de linhas de cdigo ? Programas
extensos ...
... dificultam a organizao do cdigo;
... aumentam custo na compilao do
programa.

Soluo (entre outras):


 Modularizao: organizar o programa em
containers que incluem subprogramas e dados
relacionados logicamente compilveis
separadamente.
11/08/2002

Prof. Edson S. Cordeiro

31

11/08/2002

Prof. Edson S. Cordeiro

O que encapsulamento ?

O que encapsulamento ?

 um agrupamento de subprogramas e dos


dados que eles manipulam (Sebesta, p. 397);
O encapsulamento permite uma melhor
organizao lgica para uma coleo de
computaes relacionadas;

Um objeto no pode manipular as variveis de


outros objeto diretamente;
Um objeto apenas pode acessar variveis de
outro objeto mediante ao envio de mensagens
para esse objeto;
Esse recurso chamado de encapsulamento e
garante um processo seguro para a
manipulao das variveis de um objeto.

11/08/2002

Prof. Edson S. Cordeiro

33

11/08/2002

Prof. Edson S. Cordeiro

O que encapsulamento ?

O que encapsulamento ?

Diferentemente das linguagens procedurais


onde reas comuns de dados so utilizadas
para compartilhamento de informaes, a
programao orientada a objetos no
recomenda o acesso direto reas comuns de
dados;
Apenas o objeto proprietrio do dado (varivel)
pode manipular seu contedo. Outros objetos
podem manipular os dados somente por meio
das mensagens enviadas ao objeto proprietrio
do dado (varivel).

Na Programao Orientada a


Objetos (POO), objetos interagem
com outros objetos apenas por
meio de mensagens;
A nica coisa que um objeto
conhece sobre outro objeto a
interface do objeto;
A lgica e dados de um objeto so
escondidos de outros objetos;
A interface encapsula os dados e
cdigo de um objeto.

11/08/2002

Prof. Edson S. Cordeiro

35

11/08/2002

Prof. Edson S. Cordeiro

32

34

36

O que encapsulamento ?

O que encapsulamento ?

Objeto

Objeto

Mensagem 1

Mtodo 1

Mensagem 2

Mtodo 2

Mensagem 2

Mtodo 3

Dado 1
Dado 2
Dado 3
Dado 4
Dado 5
Dado 6
Dado 7

Mensagem 1

Mtodo 1

Mensagem 2

Mtodo 2

Mensagem 2

Mtodo 3

Interface
11/08/2002

Prof. Edson S. Cordeiro

Dado 1
Dado 2
Dado 3
Dado 4
Dado 5
Dado 6
Dado 7

Interface
37

11/08/2002

Prof. Edson S. Cordeiro

38

O que encapsulamento ?

O que encapsulamento ?

O encapsulamento permite ao desenvolvedor


separar a implementao do objeto de seu
comportamento;
A separao o efeito caixa-preta onde o
usurio do objeto isolado mudanas
decorridas de implementaes;
Qualquer mudana interna ao objeto no
transparece ao usurio do objeto.

 Objetos encapsulam suas estruturas de dados


(atributos).
 Restringe a visibilidade do objeto.
 Torna inacessvel os detalhes de manipulao do objeto
de seu meio externo.
 Os usurios do objeto compreendem quais operaes
podem ser solicitadas de um objeto, mas no
conhecem os detalhes de como a operao executada.

11/08/2002

Prof. Edson S. Cordeiro

39

11/08/2002

Prof. Edson S. Cordeiro

O que Visibilidade ?

O que Visibilidade ?

Cada um dos elementos que constituem uma


classe possui uma visibilidade (Staa, p. 296);
Visibilidade a capacidade de um objeto poder
ver ou de ter referncia a outro objeto
(Larman, p. 246);
O conceito de visibilidade tambm conhecido
como modificadores de acesso.

 Os tipos de visibilidade que podem ser determinados


em uma classe para atributos e operaes so:

11/08/2002

Prof. Edson S. Cordeiro

41

40

+ public: os elementos so acessveis por todas as


classes;
# protected: os elementos so acessveis por
subclasses, ou pela prpria classe;
private: os elementos so acessveis somente
pela prpria classe;

11/08/2002

Prof. Edson S. Cordeiro

42

O que Visibilidade ?

O que polimorfismo ?

Atributos:

Outro benefcio decorrente da separao da


implementao do comportamento o
polimorfismo;
O polimorfismo permite que dois ou mais
objetos respondam a mesma mensagem
diferentemente.

 Atributos somente deveriam ser acessados pelos


mtodos da classe a que pertence;

Operaes:
 Pblicas (interface);
 Privadas (internas classe).

Classe
Operaes
Dados

11/08/2002

Prof. Edson S. Cordeiro

43

O que polimorfismo ?

11/08/2002

Prof. Edson S. Cordeiro

44

O que Herana ?
Problema:

Par

11/08/2002

 Como aumentar a produtividade ?

Soluo (entre outras):

 Reutilizar cdigo (instrues) j existentes.

Prof. Edson S. Cordeiro

45

O que Herana ?

Prof. Edson S. Cordeiro

46

O que Herana ?
 Mecanismo que permite definir uma nova classe
(subclasse) a partir de uma classe j existente
(superclasse).
 Ao se estabelecer uma Especializao (subclasse) de
uma classe, a subclasse herda as caractersticas
comuns da superclasse, isto , a especificao dos
atributos e dos mtodos da superclasse passam a
fazer parte da especificao dos atributos e dos
mtodos da subclasse.
 A subclasse pode adicionar novos mtodos e/ou
atributos, como tambm reescrever (sobrepor)
mtodos herdados.

Para construir B
preciso reutilizar
apenas A1?
Como realizar
pequenas
modificaes em I1
para reutilizar em B ?

Mdulo A
Varivel A1
Varivel A2
Instruo I1
Mdulo B
????

11/08/2002

11/08/2002

Prof. Edson S. Cordeiro

47

11/08/2002

Prof. Edson S. Cordeiro

48

O que Herana ?

O que Herana ?

 Quando uma mensagem enviada para um objeto:


 A procura do mtodo correspondente comea pela
classe do objeto;
 Se o mtodo no for encontrado, a procura
continua na superclasse.
 A Herana pode ser de dois tipos:
 Herana Simples: quando uma classe subclasse
de somente uma superclasse e,
 Herana Mltipla: quando uma classe subclasse
de vrias superclasses e consequentemente herda
as caractersticas de cada uma delas

Cobertura da herana:

Prof. Edson S. Cordeiro

11/08/2002

 Total/Exclusiva:

ocorre quando instanciada apenas a subclasse do


conjunto de subclasses da superclasse.

 Parcial:

ocorre quando somente a superclasse instanciada,


no havendo necessidade de instanciar a subclasse.

 Sobreposio:

ocorre quando mais de uma subclasse


instanciada.

49

O que Herana ?

Fsica

ou

Classes transcendem objetos;


Resultado: Moldes;
As classes moldam
caractersticas dos objetos;
Objetos se comportam de
acordo com o comportamento
da classe molde.

Classe abstrata

Jurdica

Classe concreta
Parcial

Sobreposio

Funcionrio
ou

Pessoa

Aluno
11/08/2002

Professor

ou
Horista

ou
Terceirizado

Prof. Edson S. Cordeiro

51

11/08/2002

Prof. Edson S. Cordeiro

Categorizao em Classes

Operao

 Quando estamos modelando um


domnio, observamos que h vrias
entidades similares que podem ser
abstradas em um conceito nico
que engloba esta similaridade;
 O POO incorporou esta operao
atravs da abstrao dos atributos
e dos mtodos que caracterizam
objetos semelhantes, especificandoos na CLASSE.

 Operao (Mtodo)

Prof. Edson S. Cordeiro

52

 aplicada ao objeto, ativada pelo envio de uma


mensagem. So executadas operaes sempre que um
objeto recebe uma mensagem.
 As operaes podem ser classificadas em categorias:
 Construtoras;
 Modificadoras;
 Destrutoras.
Objeto

11/08/2002

50

Forjar Classes

Exclusiva
Pessoa

Prof. Edson S. Cordeiro

11/08/2002

Classe

53

11/08/2002

Prof. Edson S. Cordeiro

54

Mtodos Construtores

Mtodos Destrutores

Mtodos Construtores so utilizados para:

Tem por objetivo destruir o objeto, ou seja,


liberar o espao de memria alocado para esse
objeto.
Aps a destruio, o objeto no poder receber
nenhuma mensagem.
Importante: Objetos com atributos do tipo
classe devem destruir os atributos do tipo
classe antes de se destrurem.

 Atribuem valores padres (default) para os


atributos do objeto que ser criado;
 Criarem objetos que compem uma classe.

Podem ser implementados com ou sem


argumentos de entrada;
Mtodos construtores no retornam valores;
Importante: Objetos com atributos do tipo
classe devem chamar (mensagem) o mtodo
construtor do atributo do tipo classe.
11/08/2002

Prof. Edson S. Cordeiro

55

11/08/2002

Prof. Edson S. Cordeiro

Agregao / Composio

Classes Abstratas / Concretas

 o princpio que permite ao desenvolvedor considerar


algo muito grande atravs do enfoque Todo-Parte.
 Todo-Parte tambm conhecido como Agregao. Esse
mecanismo permite a construo de uma classe
agregada a partir de outras classes componentes. Usase dizer que um objeto da classe agregada (Todo)
composta de objetos das classes componentes (Parte)
ou, objetos da classes componentes (Partes) compem
um objeto (Todo).

Classes Abstratas

11/08/2002

Prof. Edson S. Cordeiro

57

 So classes para as quais no se pretende


instanciar nenhum objeto;
 Fornece uma superclasse apropriada da qual as
outras classes (subclasses) podem herdar interface
e/ou implementao.

Classes Concretas
 As classes da qual os objetos podem ser
instanciados so chamadas classes concretas.

11/08/2002

Prof. Edson S. Cordeiro

Polimorfismo

Sobreposio de Mtodos

 Polimorfismo, significa muitas formas. Isto , quando


uma mesma operao pode assumir vrios
comportamentos.

 possvel, ao definirmos uma classe como


subclasse de outra, alguns mtodos herdados
no sirvam e necessitem de nova
implementao.
A sobreposio de mtodos est diretamente
associado ao conceito de Polimorfismo.

 Um nome pode denotar objetos de muitas classes


diferentes que esto relacionadas por alguma
superclasse comum.
 Ento, objetos denotados pelo mesmo nome tem a
capacidade de responder a algum conjunto comum de
operaes de modos diferentes.

11/08/2002

Prof. Edson S. Cordeiro

59

56

11/08/2002

Prof. Edson S. Cordeiro

58

60

Mtodos Abstratos
Permite determinar os mtodos que podero
ser implementados em classes descendentes,
porm sem implement-los na superclasse.
Padroniza a interface das classes determinando
os servios que podero ser implementados
pelas subclasses.
Um mtodo abstrato um mtodo virtual que
no implementado na classe onde ele
declarado. Sua implementao realizada em
classes descendentes (subclasse).
11/08/2002

Prof. Edson S. Cordeiro

61

Você também pode gostar