orient a cao objet os
TRANSCRIPT
-
8/17/2019 Orient a Cao Objet Os
1/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
Objetos
Usamos o termo objeto para representar uma determinada entida-de do mundo real.
Exemplos de objetos são:
! coisas (um CD, uma estante);
! funções (Vendedor, Cliente, etc);
! eventos;
! interações;
! lugares.
O conceito de objetos baseia-se no princípio de abstração. Atravésda abstração, podemos dividir um determinado problema em par-tes, para estudá-las separadamente. Na metodologia orientada, di-vidiremos o problema em objetos.
É importante ressaltar que a metodologia estruturada também utili-zava o princípio da abstração, mas sua ênfase era na procura dos
processos que envolviam o problema, e não nos objetos que o com- punham.
Observe que tivemos o cuidado de colocar o artigo na frente decada objeto, pois um objeto representa um elemento apenas, umadeterminada entidade. No entanto, um objeto pode ser uma entida-de composta, como uma estante (composta de CD's, prateleiras,titulo, assunto, índice, etc). Em geral a maioria dos objetos sãorealmente compostos, pois sempre podemos dividi-los em partesmenores até chegarmos a elementos realmente atômicos (indivisíveis).
Um sistema seria então um grande objeto composto de outros ob-
jetos, formando um mecanismo.
Orientação a Objetos
Art igo
O artigo Orientação a Objetos mostra os princi-pais conceitos ligados a metodologia de orien-tação a objetos, visando a construção deaplicativos Delphi ou Visual Basic.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-
8/17/2019 Orient a Cao Objet Os
2/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
O Sistema de Gerenciamento de Locadora de CD
Para entendermos melhor os conceitos ligados a orientação a obje-tos, vamos utilizar como exemplo um sistema de Gerenciamento deLocadora de CD, cujo objetivo é administrar os CD's (músicas e
jogos) de uma locadora fictícia e seus usuários, assim como as mo-vimentações realizadas pelos usuários (empréstimos e devoluções).
No Sistema de Gerenciamento de Locadora de CD, teríamos osseguintes objetos: CD's, usuários e movimentações.
Atributos ou Propriedades
Representam as características do objeto. Por exemplo, o objeto
caneta possui as características tamanho, cor, tipo de escrita. Sãoseus atributos.
Os atributos, ou sejam as características dos objetos, podem ser fixos ou variáveis. O estado de um objeto é o valor de determinadoatributo em um dado instante. Por exemplo, uma estante em umdeterminado momento pode estar vazia. Logo após, colocam-sealguns CD's nela, modificando seu estado para uma estante comCD's.
Umevento corresponde a um estímulo externo, que pode provocar a transição de um estado para outro, ou seja, pode modificar as propriedades de determinado objeto.
No Sistema de Gerenciamento de Locadora de CD, o objeto CDteria como atributos (ou seja, características) identificador, edito-ra, título, tipo (se é de música ou de jogo), e presença ( se está nalocadora ou não ). O objeto usuários teria como atributosidentificador, nome, endereço, e usufruto ( se está com uma publi-cação ou não). O objeto movimentações teria como atributos data,identificador do usuário, identificador do CD, e tipo (emprésti-mo ou devolução).
-
8/17/2019 Orient a Cao Objet Os
3/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
Note que os atributos usufruto, do objeto usuário, e presença, doobjeto CD, podem mudar de valor de acordo com um evento. Por exemplo, se o usuário pegar um CD emprestado, dando origem aum evento, o atributo usufruto passa para Sim, indicando que ousuário agora possui um CD emprestado, e o atributo presença passa
para Não, indicando que o CD não está mais na locadora. Ou seja,estes atributos sofrem uma transição, uma mudança de estado devi-do a um evento.
Serviços ou Métodos
São as funções que operam sobre o objeto. Por exemplo, com oobjeto caneta podemos escrever, desenhar, presentear. São as fun-ções oferecidas pelo objeto caneta.
Quando um objeto executa um serviço (uma função), dizemos queele apresenta um determinado comportamento, ou seja, uma rea-ção. O comportamento do objeto será resultado da ação efetuadasobre ele, e da função que esta ação chamou. Por exemplo, tanto orádio quanto a TV possuem um botão para ligá-los. Quando aper-tamos este botão (ou seja, efetuamos uma ação sobre este objeto),o comportamento apresentado por ambos é diferente, já que o ser-viço (função) chamado por esta ação é diferente: ligar o rádio signi-
fica emitir som; ligar a TV significa emitir som e imagem.Um evento, ou seja, um estímulo externo, também pode estimular oobjeto a executar determinado serviço.
No Sistema de Gerenciamento de Locadora de CD, todos os obje-tos poderiam ser cadastrados, ou seja, inseridos, alterados, excluí-dos e consultados:
-
8/17/2019 Orient a Cao Objet Os
4/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
Classes
Uma classe representa um conjunto de objetos que possuem ca-racterísticas e comportamentos comuns.
Como vimos, o mecanismo de classificação é um dos métodos quefacilita a compreensão do sistema como um todo. Cada objeto éclassificado em uma determinada classe, de acordo com suas ca-racterísticas e comportamentos.
Chamamos o objeto de instância de uma determinada classe, oque significa que ele possui o comportamento e as característicasdefinidos pela classe para suas instâncias. A instanciação é o pro-cesso contrário ao de classificação, e consiste em criar um novoobjeto a partir de uma classe.
A ênfase da metodologia de orientação a objetos será dada na de-finição de classes, e não de objetos, como se poderia pensar pelonome.
No nosso exemplo de Gerenciamento de Locadora de CD, apósencontrarmos os objetos, criaríamos as classes. Cada CD da estan-te seria classificado como um objeto da classe CD, já que possuiriaos mesmos atributos e serviços. Note que o conteúdo de cada atri-
buto irá variar para cada objeto (cada CD tem uma editora diferen-
te), mas todos possuem os mesmos atributos (todas os CD's possu-em uma editora). Já um usuário não irá pertencer a classe CD, pois,apesar de oferecer os mesmos serviços, não possui os mesmos atri-
butos (não possui editora, por exemplo).
Todo objeto pertence a apenas uma classe ao longo de sua existên-cia, não podendo modificar sua classificação.
Variávies de Instância
Os atributos de uma classe também podem ser objetos. Neste caso,estes atributos são chamados de variáveis de instancia.
Por exemplo, a classe CD contém os atributos identificador, edito-ra, título, presença e tipo. Se for do interesse do analista, poderí-amos transformar o atributo editora em uma classe: a classe Edito-ra, com atributos nome e endereço. Ou seja, a classe CD teria comoatributos identificador, título, presença, tipo e um objeto da clas-se editora:
-
8/17/2019 Orient a Cao Objet Os
5/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
Encapsulamento
Como vimos no capítulo anterior, encapsulamos detalhes de siste-mas complexos para melhor compreendê-los. Na metodologia de
orientação a objetos, encapsulamos atributos e serviços dentro dasclasses.
O analista oferece ao programador, por exemplo, a classe CD,mostrando quais os atributos dos objetos desta classe, e quais osserviços oferecidos por esta. Mas o programador não tem acesso aimplementação desses atributos e serviços (ou seja, acesso as linhasde código que os controla). Estes dados estão encapsulados, ouseja, escondidos do programador.
Relacionamento entre Classes
Como vimos, as classes são criadas após a obtenção dos objetos. Novas classes podem ser criadas, ao analisarmos o relacionamentoexistente entre as classes já encontradas.
Generalização/Especialização
Especialização é quando, dada uma determinada classe ou cate-goria, criamos uma outra, com novos atributos ou serviços que atornam mais restrita.
Generalização é a operação inversa, ou seja, é a remoção de umaou mais características de determinada classe, de modo a formar uma classe mais abrangente.
Por exemplo, podemos criar a classe CD de Música e a classe CDde Jogo, ao especilizarmos a classe CD. A classe CD de Música,
por exemplo, teria todos os atributos da classe CD mais o atributocantor .
-
8/17/2019 Orient a Cao Objet Os
6/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
Já a classe CD de Jogo teria todos os atributos da classe CD mais oatributo criador . Assim, a classe CD de Música e a classe CD deJogo seriam especializações da classe CD:
Herança é o mecanismo pelo qual uma classe obtém as caracterís-ticas de outra classe para expandi-la ou especializa-la de alguma
forma, em um relacionamento de generalização/especialização.
Quando definimos uma classe podemos defini-la como sendo umasub-classe de outra já definida, constituindo assim uma relação deherança entre elas. A classe da qual estamos herdando característi-cas será então chamada de superclasse (ou classe base) da novaclasse. Em nosso exemplo, a classe CD seria a superclasse (ou classe
base) das classes CD de Música e CD de Jogo.
Através do mecanismo de herança simples criamos um nova clas-
se baseada apenas em uma única super-classe. Já na herançamultipla, criamos uma nova classe baseada em duas ou mais super-classes, acrescentando novos atributos ou serviços.
Agregação/Decomposição
Agregar significa juntar, colar, grudar. Neste contexto, dizemos queagregação é o ato de agregar duas ou mais classes para formar uma nova classe.
Decomposiçãoequivale a divisão. Decompor uma classe significa
-
8/17/2019 Orient a Cao Objet Os
7/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
dividi-la em várias classes menores e mais simples (refinamentossucessivos). É o processo oposto à agregação.
Como vimos em nosso exemplo, a classe CD possui o atributo Edi-tora. Como fizemos, poderíamos transformar o atributo Editora em
uma nova classe. A classe Editora conteria os atributos nome eendereço. A classe Editora “faria parte”, ou seja, estaria agregada àclasse CD, caracterizando um relacionamento Todo/Parte entre asclasses CD e Editora.
Em outro exemplo, podemos dizer que as categorias Nome e Ende-reço agregadas formam a categoria Estudante. Já a decomposiçãoda categoria Estudante resulta nas categorias Nome e Endereço.
Mensagens
Um sistema complexo só funciona através da cooperação entre suas partes. Esta cooperação é feita através do envio de mensagens.Transportando esta imagem para o modelo de orientação a objetos,
podemos dizer que um objeto se comunica com outro através doenvio de mensagens.
Para entender melhor o conceito de mensagens, vamos supor queum usuário de nossa locadora queira pegar um CD emprestado.
-
8/17/2019 Orient a Cao Objet Os
8/8
© 2 0 0 1 ,A d v an
c e d
B o ok s
O primeiro procedimento da atendente da locadora será verificar seo usuário já está cadastrado na locadora. Para essa verificação, oobjeto Movimentação enviará uma mensagem para o objeto Usuá-rio: Verificar Usuário.
Ao receber esta mensagem, o objeto Usuário dará início ao serviçoVerificaUsuário(), devolvendo uma resposta (ou seja, tendo um de-terminado comportamento): o usuário está cadastrado ou não.
Adelize Oliveira é diretora da Advanced Books, tendo escrito mais de 50 livros de informática, entre eles Orientação a
Objetos com Delphi e Avançando no Visual Basic 6: Orienta-
ção a Objetos.