Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Orientada A Objetos
Programação Orientada A Objetos
ORIENTADA
A
OBJETOS
1. INTRODUO
2. CLASSE
2.1 ATRIBUTOS
2.2 MTODOS
3. OBJETOS
4. MENSAGENS
11
5. ENCAPSULAMENTO
12
6. HERANA
14
7. POLIMORFISMO
20
7.1 Definio:
20
23
8. LATE BINDING
23
8.1 Definio
23
8.2 Tipos
24
25
25
8.4 Concluses
27
9. BIBLIOGRAFIA
28
__________________________________________________________________________________
___
1. INTRODUO
Pag.:
__________________________________________________________________________________
___
Pag.:
__________________________________________________________________________________
___
Pag.:
__________________________________________________________________________________
___
Neste caso, tanto PROFESSOR quanto ALUNO comem, andam e respiram, e foi necessrio
escrever o cdigo do mtodo Come ( ), Anda ( ) e Respira ( ) somente uma vez. Apenas os
mtodos especficos de PROFESSOR (no caso, Leciona ( ) e Corrige_Prova ( ) ) e de
ALUNO (Assiste_Aula ( ) e Faz_Prova ( ) ) que precisam ser escritos
Atualmente existe uma grande discusso sobre o que exatamente uma linguagem
orientada a objetos. importante lembrar que um claro conceito de objeto, no caracteriza um
sistema como orientado a objetos. Ao invs de entrarmos na discusso do que seja uma
linguagem orientada a objetos, vamos apresentar os principais mecanismos utilizados nestas
linguagens, sem uma preocupao de explicitar quais deles seriam necessrios para dar a uma
linguagem o "Ttulo" de Orientada a Objetos.
Este texto visa ento, introduzir o leitor s principais idias e conceitos de Programao
Orientada a Objetos. Sero expostos exemplos de implementao em C++ e ilustraes que
Pag.:
__________________________________________________________________________________
___
2. CLASSE
Classe o termo tcnico utilizado em linguagens orientadas a objetos que descreve um
conjunto de dados estruturados que so caracterizados por propriedades comuns. Tambm
pode ser interpretado como uma estrututura modular completa que descreve as propriedades
estticas e dinmicas dos elementos manipulados pelo programa.
Pode-se definir classes de objetos como a descrio de um grupo de objetos por meio
de um conjunto uniforme de atributos e servios. Uma classe um conjunto de objetos que
compartilham as mesmas operaes.
Enquanto um objeto individual uma entidade concreta que executa algum papel no
sistema como um todo, uma classe captura a estrutura e o comportamento comum a todos os
objetos que so relacionados. Um objeto possui uma identidade e suas caractersticas sero
definidas para a classe.
Uma classe definida por:
??
um nome da classe;
?? o nome da sua superclasse;
?? o nome de suas variveis privadas;
?? os nomes e as definies de todas as operaes associadas a esta classe;
Classe um conceito esttico: uma classe um elemento reconhecido num texto de
programa. por outro lado, um objeto um conceito puramente dinmico, o qual pertence no
ao texto do programa, mas memria do computador, local onde os objetos ocupam espao
durante a execuo. (Conceitualmente, classes no so necessrias durante a execuo, mas
em linguagens interpretadas elas podem ser mantidas).
Exemplo de classe:
Uma classe semelhante a uma struct e em C++ podemos definir a classe fila do
seguinte modo:
class fila {
int f [100];
int primeiro, ultimo;
Pag.:
__________________________________________________________________________________
___
public:
void inicio (void);
void put (int valor);
int get (void)
};
Examinando a declarao anterior, vemos:
Uma classe pode contertanto partes pblicas como privadas. Por exemplo, as variveis f
, primeiro e ultimo so privadas. Isto significa que no podem ser acessadas por qualquer
funo que nao seja membro dessa classe.
Para tornar pblicas as partes de uma classe, ou seja, acessveis o outras partes do
programa, preciso declar-las aps a palavra public.
2.1 ATRIBUTOS
Um atributo um dado para o qual cada objeto tem seu prprio valor.
Atributos so, basicamente, a estrutura de dados que vai representar a classe.
Exemplo de atributos, usando a classe fila:
int f [100] ;
int primeiro, ultimo;
2.2 MTODOS
Mtodos so declarados dentro de uma classe para representar as operaes que os
objetos pertencentes a esta classe podem executar.
Um mtodo a implementao de uma rotina, ou seja, o cdigo propriamente dito. Pode
ser comparado a um procedimento ou funo das linguagens imperativas.
Exemplo de mtodos, utilizando a classe fila:
void iniciar (void)
{
primeiro = 0;
ultimo = 0;
};
Pag.:
__________________________________________________________________________________
___
3. OBJETOS
O que caracteriza a programao orientada a objetos so os objetos. De um modo
geral podemos encarar os objetos como sendo os objetos fsicos do mundo real, tal como:
carro, avio, cachorro, casa, telefone, computador, etc., por isso que s vezes dito que
orientao a objetos representa os problemas mais prximo ao mundo real, dando assim mais
facilidade a programao como um todo, mais isso no sempre verdade, porque s vezes
temos problemas que so extremamente funcionais1. Nesses problemas funcionais difcil
representar a estrutura lgica em torno de objetos. Com isso, no so todos os problemas que
giram em torno dos objetos facilmente visveis.
De maneira simples, um objeto uma entidade lgica que contm dados e cdigo para
manipular esses dados. Os dados so denominados como sendo atributos do objeto, ou seja,
a estrutura que o objeto tem, e o cdigo que o manipula denominamos mtodo. Um mtodo
uma funo que manipula a estrutura de dados do objeto.
Um objeto um ente independente, composto por:
??
estado interno, uma memria interna em que valores podem ser armazenados e
modificados ao longo da vida do objeto.
?? comportamento, um conjunto de aes pr-definidas (mtodos), atravs das quais o
objeto responder a demanda de processamento por parte de outros objetos.
Por exemplo:
Uma tela de computador pode ter os seguintes atributos e mtodos:
atributos
modo de operao /* texto/grfico */
1
Pag.:
__________________________________________________________________________________
___
tamanho horizontal
tamanho vertical
paleta de cores
cor atual
mtodos
modo texto ( )
modo grfico ( )
fecha modo grfico ( )
muda cor ( )
escreve caracter ( )
coloca pixel ( )
muda dimenses (x,y)
...
Um guarda-roupa:
estrutura
conjunto de roupas /* tipo, tamanho, cor, estilo, preo, etc. */
portas
nmero de portas
capacidade mxima
mtodos
abre porta ( )
fecha porta ( )
escolhe roupa ( )
tira roupa ( )
coloca roupa ( )
estado do guarda-roupa ( ) /* portas abertas e fechadas, quantidade de roupas,
etc. */
...
Uma lista:
estrutura
(nodo e um apontador para um prximo nodo) Primeiro e atual
mtodos
cria lista ( ) /* cria clula cabea e inicializa */
prximo ( ) /*vai para o prximo elemento da lista */
insere ( ) /* insere um elemento na posio atual */
deleta ( ) /* apaga posio atual */
volta ao comeo ( ) /* atual = primeiro */
...
Pag.:
__________________________________________________________________________________
___
Podemos notar que um objeto composto por estrutura e processos, onde esses
processos giram em torno da estrutura, ao contrrio das linguagens funcionais, nas quais a
estrutura se adapta a funo. Um objeto s pode ser manipulado por sua estrutura e seus
mtodos, nada mais do que isso.
Somente um objeto de um determinado tipo pode acessar seus mtodos e estrutura, um
outro tipo de objeto no tem nenhum acesso a estes. Por exemplo, em uma classe cachorro
temos o mtodo fala. Se por exemplo definirmos um objeto da classe gato, este objeto no
tem acesso nenhum ao mtodo fala de cachorro.
Dentro de um objeto, alguns mtodos e/ou estrutura podem ser privados ao objeto, o
que nos diz que so inacessveis diretamente para qualquer elemento fora dele, o que impede
que outros objetos tenham acesso direto s partes privadas do objeto referenciado. Para o
objeto poder referenciar seus elementos privados ele deve passar pelos seus mtodos, neste
caso um mtodo especfico que faa a operao desejada, ou seja, ele pode acessar sua
estrutura privada somente atravs de seus mtodos, dando assim uma certa abstrao de como
feita a manipulao da estrutura. Isso consiste no encapsulamento de dados que ser
explicado na seo referente a este tema. A princpio toda a estrutura deve ser privada, mas
algumas linguagens como C++ permitem que a estrutura de um objeto possa ser acessada
diretamente por outros objetos. J em SmallTalk toda a estrutura privada. Dessa maneira,
um objeto evita significativamente que algumas outras partes no relacionadas de programa
modifiquem ou usem incorretamente as partes privadas do objeto referenciado, dando assim
maior confiabilidade na manipulao do objeto. Isso tudo nos mostra uma caracterstica muito
grande para construo de mdulos independentes e abstrao ao usurio.
Mais exatamente, cada objeto uma instncia de sua classe. a classe que contm a
descrio da representao interna e dos mtodos comuns a todas as suas instncias
(objetos). Cada instncia da classe, por sua vez, possui sua prpria memria privativa (seu
estado interno) onde ficam armazenados os valores de seus componentes, que representam
suas caractersticas individuais. Associando com a linguagem C, uando voc define uma
estrutura como por exemplo:
struct aluno {
char nome [30];
char telefone [20];
int nmero;
};
Quando voc declara uma varivel do tipo struct aluno voc define uma instncia da
estrutura aluno.
main ( ) {
struct aluno a; /* a uma varivel do tipo da estrutura aluno */
...
}
Pag.:
__________________________________________________________________________________
___
Pag.:
10
__________________________________________________________________________________
___
4. MENSAGENS
Mensagens so requisies para que um objeto execute uma de suas aes. Cada objeto
somente pode responder s mensagens que constem do seu protocolo. O protocolo de um
objeto so as mensagens correspondentes as suas operaes, alm do protocolo de sua
superclasse.
Os objetos interagem atravs de mensagens.
O atendimento de uma mensagem envolve a execuo de algum tipo de cdigo, ou seja,
os mtodos, sobre um dado associado quela operao, ou seja, sobre os atributos.
Quando um objeto criado, o acesso a suas caractersticas feito atravs de
mensagens. Para cada mensagem recebida pelo objeto, existe um mtodo associado para
respond-la. Quando a mensagem estiver se referenciando a um atributo, o valor deste deve
ser devolvido, e no caso de uma operao, o procedimento desta executado.
As operaes podem ter parmetros de entrada e sada com tipos determinados. Esta
caracterstica, juntamente com o seu nome, definem a assinatura de uma mensagem.
Pag.:
11
__________________________________________________________________________________
___
fila_atual.get( );
5. ENCAPSULAMENTO
O conceito de encapsulamento decorrente do fato de se combinar os dados
(atributos) e o cdigo que manipula estes dados (mtodos) em um nico Objeto. Ele garante
que a nica forma de acesso aos dados atravs dos mtodos disponveis ao usurio
(chamados pblicos). Os demais mtodos e os atributos da classe ficam sendo privados, ou
seja, apenas funes-membro da classe tm acesso direto aos mesmos.
Objeto
atributos
mtodos
Aplicao
Pag.:
12
__________________________________________________________________________________
___
typedef struct{
float coeficiente;
int expoente;
} termo;
class polinmio{
termo Vetor[30];
public:
polinomio(char *string);
~polinomio ( ) { };
void insere (float coef, int exp);
...
float calcula_fx (float x);
}
Digamos que o encapsulamento no existe e eu no tenho este mtodo, mas eu estou
fazendo uma aplicao que usa a classe polinmio, e preciso calcular f(x). Eu posso ento
acessar diretamente o vetor dentro do objeto, obter o coeficiente e expoente de cada termo do
polinmio e calcular f(x) sem mais problemas, no posso? Pode.
Mas um belo dia voc chega brilhante concluso que um vetor no a maneira mais
econmica (em se tratando de memria) de se representar um polinmio, e resolve alterar a
estrutura de dados para uma lista.
E agora, o que aconteceu com o cdigo para calcular f(x)? Bem, voc ter que
implementar praticamente tudo de novo, s que agora com lista. E assim seria se a estrutura de
dados fosse mudada de novo, e de novo, e de novo...
Agora vejamos o que acontece no mesmo objeto polinmio, mas agora com
encapsulamento: A minha aplicao chama o mtodo da classe calcula_fx e obtm o resultado
desejado. Se eu mudar a estrutura de dados do objeto, precisarei fazer mudanas neste
mtodo, para que ele opere corretamente. MAS ... a minha aplicao no mudou em nada!!!
Isto quer dizer que se eu modificar o objeto sem alterar a interface dos meus mtodos de
acesso, no precisarei mudar uma linha na minha aplicao para que ela funcione corretamente.
Isso s ser possvel se eu sempre acessar os dados atravs dos mtodos da classe, e nunca
diretamente.
claro que no sempre que eu consigo preservar a interface de um objeto quando da
mudana da estrutura de dados, e s vezes a minha aplicao tambm precisar ser
modificada. Entretanto, o Encapsulamento facilita estas mudanas, que no precisaro ser to
drsticas quanto no exemplo sem a aplicao deste conceito.
Alm desse aspecto, ainda h o da proteo dos dados encapsulados. Restringir o
acesso dos atributos aos mtodos da classe garante que nenhum dado ser alterado por
engano ou de forma descontrolada. Por exemplo, se a lista do meu objeto polinmio fosse
acessvel minha aplicao, nada impediria que eu, por engano, mudasse um apontador da
Pag.:
13
__________________________________________________________________________________
___
mesma e perdesse algum dado. O encapsulamento protege os dados, e faz o uso do objeto ser
mais seguro.
Em outras palavras, o Encapsulamento garante que a minha classe seja uma caixinha
preta para o usurio: ele no sabe o que h dentro do objeto, sabe apenas para que ele serve e
quais os mtodos disponveis para a manipulao deste.
Note-se que este conceito possui efeito contrrio para um objeto mal definido. Se, ao
projetarmos uma classe, no fornecemos mtodos de acesso adequados, teremos dificuldades
em criar aplicaes eficientes com objetos instanciados da mesma. Por exemplo, a nossa
classe polinmio deveria possuir um mtodo para informar se um termo de ordem n est
presente no objeto. Caso contrrio, fica difcil, por exemplo, implementar uma aplicao que
compare dois polinmios e diga se possuem todos os termos de ordens iguais ( ex.: x2 + 2 e
3x2 + 5).
Logo, a tarefa de projetar uma classe envolve, entre outras atividades, definir da melhor
maneira possvel quais mtodos de acesso ao objeto sero disponibilizados ao usurio. Um
bom projeto inicial evita a necessidade de se redefinir uma classe j implementada.
6.
HERANA
Herana a propriedade dos objetos que permite a criao de uma hierarquia entre eles,
onde os descendentes herdam o acesso ao cdigo e estruturas de dados dos seus ancestrais.
Pag.:
14
__________________________________________________________________________________
___
...
}
Muito bem, ento eu defini minha classe Animal e a usei no meu aplicativo. Digamos que
a classe foi projetada e implementada de uma maneira tima, que possui todos os atributos e
classes necessrias para a representao de um animal qualquer.
Digamos que eu tenha mais um aplicativo para fazer, que precise de uma Classe
Mamfero. A representao de um mamfero muito parecida com a de um Animal, mas ele
possui atributos e mtodos que no so comuns a todos os animais: mamferos (mamar, emitir
sons etc.), alm de fazerem algumas atividades de forma diferente dos demais Animais (Nem
todos os animais comem ou procriam como os mamferos, por exemplo).
Numa linguagem de programao sem herana, a implementao da classe Mamfero
provavelmente implicaria na replicao do cdigo de Animal, com as modificaes necessrias
para caracterizar a classe. Se fosse necessrio implementar uma classe Macaco, eu replicaria o
cdigo de Mamfero na nova classe. Uma classe Chimpanz teria o cdigo de Macaco
replicado em si, e assim sucessivamente.
Isso no est bom. Se fosse necessrio implementar todas as classes existentes entre o
Ser Vivo e o Mosquito, teramos centenas de classes, todas com replicao do cdigo das
classes anteriores. Alm disso, se houvesse a necessidade de modificar algum mtodo de
Animal que fosse comum a todas estas centenas de classes, esta modificao teria que ser feita
em todas elas, uma a uma. Ser que no existe uma maneira melhor?
Na verdade, fcil perceber que Mamfero na verdade uma especializao de
Animal, um herdeiro dessa classe. Assim, se eu dispuser de um mecanismo que me permita
declarar Mamfero como tal, e assim herdar todos os mtodos e atributos da classe ancestral,
no precisarei replicar cdigo, apenas incluirei os mtodos e atributos especficos na classe
Mamfero, e redefinirei os mtodos que achar necessrio. O mecanismo que me permite isso
a Herana.
A Herana vai produzir uma ordem de hierarquia entre as diversas Classes-Objetos que
estiverem relacionadas desta forma. Um objeto herdeiro em geral uma especializao do seu
ancestral, que por conseqncia ser uma generalizao de seu sucessor. Eu posso montar
uma estrutura de hierarquias entre Classes-Objetos baseada na relao generalizaoespecializao, resultando que os objetos mais ancestrais so mais genricos ou abrangentes, e
os seus sucessores so cada vez mais especficos, medida que nos aprofundamos na
estrutura. Observe como eu posso montar uma estrutura desse tipo baseado na classe Animal:
Animal
Mamfero
Peixe
Pag.:
15
__________________________________________________________________________________
___
Antropide
Homem
Tarzan
Tubaro
Macaco
Elefante
Chita
Tu-Tu-Baro
Dumbo
implica:
Pag.:
16
__________________________________________________________________________________
___
Uma classe pode ser herdeira direta de mais de uma classe ao mesmo tempo. Isto
chamado de Herana Mltipla. A herana mltipla se aplica em situaes como a do golfinho.
Ele um mamfero, mas possui caractersticas de Peixe. Assim, fazemos a classe Golfinho
herdar de Peixe e Mamfero, e redefinimos os mtodos especficos para Golfinho.
Animal
Mamfero
Peixe
Golfinho
importante ressaltar que normalmente no preciso redefinir os mtodos, e atributos
herdados no precisam ser redeclarados ou redefinidos, a no ser que haja necessidade de
refin-los. Por exemplo, Antropide e Homem respiram do mesmo jeito, logo eu vou utilizar o
mtodo Respira( ) de Antropide para fazer Homem respirar. Entretanto Os mamferos andam
de formas diferentes, logo um mtodo Anda( ) em Mamfero provavelmente ter que ser
redefinido para Antropide e Elefante, por exemplo.
A principal vantagem da herana em linguagens Orientadas a Objeto est no
reaproveitamento de cdigo que ela proporciona, pela declarao de classes herdeiras mais
especficas ao meu problema. Do ponto de vista da Anlise Orientada a Objetos, a herana
permite uma melhor organizao dos elementos que envolvem o Domnio do Problema,
facilitando a compreenso do mesmo e a procura de solues adequadas para o Sistema em
questo.
A estrutura dos exemplos acima poderia ser implementada em C++ desta forma:
class Mamifero:public Animal {
boolean querMamar;
public:
Mamfero( ):Animal( ) {}
~Mamfero( );
void Mamar( );
void Respirar( );
...
}
class Elefante:public Mamifero {
public:
Elefante( ):Mamfero( ) {}
Pag.:
17
__________________________________________________________________________________
___
~Elefante( );
void LevantarTromba( );
void Andar( );
...
}
class Antropoide:public Mamifero {
public:
Antropoide( ):Mamifero( ) {};
~Antropoide( );
void Andar( );
void Procriar( );
...
}
Pag.:
18
__________________________________________________________________________________
___
~Tubarao( );
void Comer( );
...
}
class Golfinho:public Mamifero, Peixe {
public:
Golfinho( ):Mamifero( ),Peixe( ) {};
void Comer( );
void Respirar( );
...
}
Homem Tarzan;
Macaco Chita;
Elefante Dumbo;
Tubarao Tu_Tu_Barao;
Golfinho Flipper;
void main(void)
{
Tarzan.Comer( );
Chita.Comer( );
Tarzan.Respirar( );
Chita.Respirar( );
Dumbo.Respirar( );
Dumbo.Andar( );
Tanzan.Andar( );
Chita.Mamar( );
Flipper.Mamar( );
Tarzan.Mamar( );
Chita.SobeNaArvore( );
Tu_Tu_Barao.Comer( );
Flipper.Comer( );
}
Observe a declarao do mtodo Comer( ): ele declarado em Antropide, e redefinido
para Homem e para Macaco, j que estes comem de formas diferentes. No momento de
enviarmos uma mensagem para o objeto Tarzan e para o objeto Chita, fazemos da mesma
forma, j que os mtodos possuem nomes idnticos, mas a mensagem a Tarzan resultar na
execuo do mtodo Comer( ) de Homem, e a mensagem a Chita, na do mtodo Comer( ) de
Macaco. J na chamada a Respirar( ), o mtodo chamado tanto para Tarzan como para Chita
e Dumbo o mesmo, herdado de Mamfero.
importante entender que cada objeto vai ter o seu prprio grupo de atributos. A
chamada Chita.Mamar( ) vai afetar as variveis de Chita unicamente, e no de algum objeto
Mamfero declarado. Homem e Macaco so mamferos diferentes, objetos diferentes. Cada um
Pag.:
19
__________________________________________________________________________________
___
7. POLIMORFISMO
7.1 Definio:
Polimorfismo a propriedade de uma ou mais classes responderem a mesma mensagem,
cada uma de uma forma diferente. Numa linguagem orientada a objeto, uma referncia
polimrfica tal que, no decorrer do desenvolvimento do software, refere-se a mais de uma
classe. Desta forma possvel explorar similaridades entre diferentes classes de objetos. Este
conceito til para distinguir mensagens de um mtodo. Um objeto emissor envia uma
mensagem, se o objeto receptor implementa um mtodo com a mesma assinatura, ele poder
respond-la. Diferentes respostas sero possveis, dependendo de como os mtodos dos
receptores esto implementados.
Pag.:
20
__________________________________________________________________________________
___
Pag.:
21
__________________________________________________________________________________
___
Pag.:
22
__________________________________________________________________________________
___
8. LATE BINDING
8.1 Definio
Late Binbing um tcnica que no esta ligada somente as linguagens Orientadas a
Objetos, muitas outras linguagem usam esta tcnica, principalmente as linguagens no tipadas.
Cada linguagem que a implementa faz algum tipo de Binding, que no so necessariamente
iguais. As linguagens orientadas a objetos interpretadas que fazem com maior freqncia o
Late Binding.
No existe muita bibliografia que fale sobre essa tcnica, pelo menos para linguagens
orientadas a objetos. Geralmente citada no decorrer da explicao dos conceitos de
orientao objeto e/ou da linguagem, no ressaltando a tcnica especificamente. No entanto,
Pag.:
23
__________________________________________________________________________________
___
8.2 Tipos
Existem os seguintes tipos de Binding:
?? Execution Time (tempo de execuo): o mais comum em tipos de variveis.
?? Entrada em um subprograma: o binding ocorre apenas na entrada de um subprograma,
por exemplo em Pascal, onde as variveis so tipadas no incio do procedimento (aloca
espao para as variveis).
?? Pontos arbitrrios durante a execuo: pode ocorrer em qualquer ponto da execuo,
em exemplo so linguagens onde no existem declaraes de tipos.
?? Translation Time (tempo de compilao): existem em todas as linguagens.
Pag.:
24
__________________________________________________________________________________
___
?? Ligao escolhida pelo programador: decises tomada pelo programador que podem ser
decididas durante o processamento (tipos de variveis).
?? Ligao escolhida pelo processador: so ligaes feitas pelo processador, em
FORTRAN ligaes de determinadas variveis para determinada lugares so feitas em
tempo de carregamento. (atribuies, default).
?? Tempo de implementao da linguagem: alguns aspectos da linguagem que usam ligao
so definidas no desenvolvimento da linguagem. Exemplo: representao de nmeros (10
10.0).
?? Tempo de definio de linguagem: muitas estruturas de linguagens so fixadas na sua
definio. Por exemplo a possibilidade de alternativas formas, dados, estrutura e tipos so
definidas pela linguagem. (o operador + em C definido para inteiros e reais).
Pag.:
25
__________________________________________________________________________________
___
possvel escrever programas orientados para objetos em C++, onde nos oferece
criao dinmica de instncias de objetos e ligao dinmica de operaes com objetos com
funes virtuais. As chamadas de funes virtuais so vinculadas dinamicamente em tempo de
execuo, enquanto que o tipo de instncia do objeto em tempo de compilao.
Exemplos
Agora passaremos alguns exemplos para deixar mais claro o sua definio e propsito.
Ex1 - Uma comparao entre linguagens imperativas e O.O.
Programa imperativo
Program imperativo;
uses crt;
var i : integer;
CRT
Procedure P;
Begin
{faz coisas}
end;
PP
seqncia de uso
Programa O.O.
O desenvolvimento no seqencial, cada mdulo construdo separadamente. A seguir
mostraremos como funciona um programa orientado a objetos, onde as setas indicam a troca
de mensagens e o * onde comea o processo.
Ora uma seqncia pode se aplicado como no exemplo seguinte:
Pag.:
26
__________________________________________________________________________________
___
* A
D
E
D
*
8.4 Concluses
O programa que usa ligao tardia no depende de sua aplicao. Na prtica, muitos
programas grandes usaro uma combinao das duas ligaes (precoce e tardia). Ligao
tardia uma das ferramentas mais poderosas de orientao a objetos. Porm, o preo que se
paga por essa potencialidade a lentido do programa. Portanto deve-se usar ligao tardia
somente quando acrescentar significativamente estruturao e flexibilidade ao programa. A
perda de performance muito pequena, da maneira que , quando a situao pedir ligao
tardia, deve-se definitivamente usa-la.
Varia de linguagem para linguagem. As principais vantagens desta tcnica que nos
permite facilidade de programao, uma maior reutilizao de cdigo e independncia no
desenvolvimento de mdulos.
Pag.:
27
__________________________________________________________________________________
___
9. BIBLIOGRAFIA
Anlise e Projeto Orientado a Objeto - Jaelson Freire Brelaz de Castro - [94]
Programao Orientada a Objetos - Tadao Takahashi e Hans K. E. Liesenberg - [90]
Smalltalk 80 - A. Goldberg & Robson
Smalltalk V - Digitalk
Introduo Programao Orientada a Objeto - Miguel Jonathan [94]
Anlise Baseada em Objetos - Peter Coad & Edward Yourdon [92]
Programao em C++ - Uma Abordagem Orientada a Objetos - Ben Ezzel [91]
Projeto de Algoritmos - Nvio Ziviani [93]
O Paradigma de Objetos: Introduo e Tendncias - Tadao Takahashi [89]
Programando em C++ - Steven Holzner & The Peter Norton Computing Group [93]
Programming language: concepts and paradigms - David A. Watt
Object Oriented Software Construction - Bertrand Meyer
Pag.:
28