orient a cao objet os

Upload: martin-quintana

Post on 06-Jul-2018

212 views

Category:

Documents


0 download

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.