Oficina OO

26

description

Oficina de Orientação a Objeto

Transcript of Oficina OO

Apresentao do PowerPoint

O que Orientao a ObjetosParadigma utilizado na computao que se tornou essencial em muitas das linguagens de programao amplamente utilizadas na indstria de software, como C++, Object Pascal, C#, Java, entre outras.Neste paradigma, tudo pode ser potencialmente representado como um objeto. Umobjeto um elemento computacional que representa alguma entidade (abstrata ou concreta) do problema sob anlise. Sob o ponto de vista da programao, um objeto no muito diferente de uma varivel no paradigma de programao convencional.

17/04/2015Universidade Feevale 2015/012 de 312Orientao a Objetos TcnicasAbstrao;Classes;Herana;Polimorfismo;Ligao dinmica;Encapsulamento;Concorrncia;Coletor de lixo;Persistncia de objetos;Generalizao.17/04/2015Universidade Feevale 2014/013 de 313Orientao a Objetos Tcnica AbstraoConceito:Capretz (2003) aponta que a abstrao uma tcnica que ajuda a lidar com a complexidade. Envolve uma seletiva anlise de determinados aspectos de uma aplicao, cujo objetivo isolar os aspectos que so importantes para uma compreenso da aplicao. Alm de suprimir os aspectos irrelevantes, as classes e os objetos so a forma das abstraes de uma aplicao. 17/04/2015Universidade Feevale 2014/014 de 31

17/04/2015Universidade Feevale 2014/015 de 31Orientao a Objetos Tcnica AbstraoAs caractersticas essenciais de uma entidade so conhecidas como abstrao.Vejamos a entidade veculo:

Cor: Amarelo, verde;Tipo: Automvel, tanque;Pneu: Tipo, largura;Rodas: Quantidade, tamanho;Andar: Para frente ou para trs;Direo: Direita ou esquerda.As caractersticas podem indicar um dado/estado, por exemplo, a cor amarelo, ou um comportamento/mtodo: andar para frente.5Montar uma abstraoProblema:Nossa instituio se relaciona com diversos pblicos, sendo assim, necessrio um cadastro para este pblico.Criar um abstrao que rena as mesmas caractersticas de todos os pblicos com o qual a instituio se relaciona.17/04/2015Universidade Feevale 2014/016 de 31Orientao a Objetos Tcnica ClassesConceito:Buyya et al. (2009) definem que a estrutura de software que suporta a abstrao de dados conhecida como classe. Uma classe um tipo de dados que captura a essncia de uma abstrao. A classe um prottipo ou modelo que define caractersticas diferentes. Um recurso pode ser um dado ou uma operao;Os dados so representados por variveis de instncia ou variveis de dados de uma classe; As operaes tambm so conhecidas como comportamentos, mtodos ou funes.17/04/2015Universidade Feevale 2014/017 de 3117/04/2015Universidade Feevale 2014/018 de 31Orientao a Objetos Tcnica ClassesSegundo Meyer (2000), cada classe corresponde a uma abstrao bem definida.Classe um tipo de dados que captura a essncia de uma abstrao.

817/04/2015Universidade Feevale 2014/019 de 31Orientao a Objetos Tcnica ClassesCom a abstrao realizada anteriormente, possvel definir a seguinte classe:

9Montar uma classeProblema:Apesar de a abstrao estar definida, nosso sistema de cadastro ainda no tem nada implementado, agora vamos criar a classe que ser base para nosso sistema.Criar uma classe a partir da abstrao feita.17/04/2015Universidade Feevale 2014/0110 de 31Orientao a Objetos Tcnica HeranaConceito:A herana , segundo Meyer (2000), um suporte para reutilizao ou extenso de classes, o que exige aproveitamento das fortes relaes conceituais que possuem entre entidades (classes), j que uma classe pode ser uma extenso, especializao ou a combinao de ambos.17/04/2015Universidade Feevale 2014/0111 de 311117/04/2015Universidade Feevale 2014/0112 de 31Orientao a Objetos Tcnica Herana

12Montar as classes de heranaProblema:Quando fizemos a abstrao, percebemos que dois tipos de pessoas praticamente se relacionam com a instituio, pessoa fsica e pessoa jurdica, agora a hora de colocar em forma de classe que herda as caractersticas especficas de cada uma delas.Criar uma classe que herda a classe anterior e sua especializao.17/04/2015Universidade Feevale 2014/0113 de 31Orientao a Objetos Tcnica PolimorfismoConceito:O polimorfismo permite que um objeto possa ser processado de diferentes maneiras, por tipos de dados e/ou classes de dados, ou seja, trata-se da capacidade de resposta de diferentes objetos a uma mesma mensagem, permitindo-se ento, que um nico nome ou operador possa a ser associado a diferentes operaes. Dependendo do tipo de dados disponveis, h a possibilidade de redefinir um mtodo dentro de uma classe derivada (BUYYA et al., 2009).17/04/2015Universidade Feevale 2014/0114 de 3114Orientao a Objetos Tcnica PolimorfismoO mtodo Direcao das classes avio e Passeio so exemplos de polimorfismo, pois quando o objeto passeio o que o objeto vira o volante e quando for o avio o manche, mesmo assim ambos tem a mesma assinatura, pois viram para algum lado.17/04/2015Universidade Feevale 2014/0115 de 31

15Montar um mtodo que caracterize o polimorfismoProblema:Alm de cadastrar a informao, qualquer ferramenta deve prover o acesso a mesma. Criar um mtodo virtual na classe pessoa que permita buscar a pessoa seja ela fsica ou jurdica com a mesma assinatura.17/04/2015Universidade Feevale 2014/0116 de 31Orientao a Objetos Tcnica Ligao dinmicaConceito:A ligao dinmica exerce grande influncia sobre a estrutura de aplicaes orientadas a objeto, uma vez que permite que os desenvolvedores escrevam chamadas simples para designar o que se constitui em vrias ligaes possveis.Dependendo da correspondente situao em tempo de execuo, por exemplo, a chamada do recurso PessoasNoVeiculo() na classe avio. A ligao dinmica deve evitar a de repetio de testes (Se passageiro?, Se tripulante?) que flagelam software escrito com abordagens mais convencionais (MEYER; 2000).17/04/2015Universidade Feevale 2014/0117 de 3117Montar um mtodo que caracterize a ligao dinmicaProblema:A empresa precisa de um total de clientes ativos, independente se fisica ou jurdica. Criar uma srie de mtodos que permitam que um s mtodo rena suas informaes.17/04/2015Universidade Feevale 2014/0118 de 31Orientao a Objetos Tcnica encapsulamentoConceito:Pode-se afirmar que encapsulamento tem o objetivo de esconder, dentro de uma cpsula, a inteligncia do software desenvolvido, tal qual uma capsula de remdio. Buyya et al. (2009), usa esta analogia ao afirmar que sob o ponto de vista do usurio, um nmero de caractersticas so acondicionadas em uma cpsula, a fim de formar uma entidade. Esta entidade oferece servios por meio de interfaces, cujo objetivo esconder os detalhes de implementao. 17/04/2015Universidade Feevale 2014/0119 de 3119Orientao a Objetos Tcnica encapsulamentoSuponhamos que nossa classe Aviao contenha a seguinte propriedade:public List Passageiros { get; set; }Pelo fato de ser pblica ela aceita qualquer tipo de adio ou subtrao direta, sem nenhuma proteo;Agora eu poderia criar uma nova classe chamada ListaPassageiros, esta classe teria suporte a adio e subtrao de passageiro atravs de mtodos prprios publicos, mas a lista seria um campo privado, evitando assim que o programador que no tem acesso a classe manipule diretamente a lista.17/04/2015Universidade Feevale 2014/0120 de 3120Montar um mtodo que caracterize o encapsulamentoProblema:A instituio precisa controlar os movimentos financeiros dos alunos por um saldo, porem este dado poder ser alimentado por terceiros, por exemplo, o Tiririca. Criar uma maneiro em que o saldo no fique exposto ao instanciar um objeto do tipo aluno.17/04/2015Universidade Feevale 2014/0121 de 31Orientao a Objetos Tcnica ConcorrnciaConceito:Buyya et al. (2009) afirma que so meios programveis de concorrncia, o uso de threading, a sincronizao e o escalonamento. O uso de concorrncia tambm permite complexidade adicional para o desenvolvimento de aplicaes, permitindo a elas mais flexibilidade.17/04/2015Universidade Feevale 2014/0122 de 3122Orientao a Objetos Tcnica Coletor de lixo Conceito:O coletor de lixo, ou garbage collector, uma facilidade includa no sistema em tempo de execuo para a linguagem de programao. Coletores de lixo clssicos so ativados sob demanda e sempre rodam para a concluso de uma tarefa. Em outras palavras, o coletor de lixo est inativo desde que haja memria para o aplicativo, quando o aplicativo executado com falta de memria, disparado o ciclo de coleta de lixo, onde recursos em desuso so eliminados da memria (MEYER; 2000).17/04/2015Universidade Feevale 2014/0123 de 3123Orientao a Objetos Tcnica Persistncia de objetosConceito:A persistncia o conceito de que um objeto (um conjunto de dados) sobrevive aps a execuo do programa, ou seja, entre fechar e abrir o programa novamente. Todos os sistemas de banco de dados possuem suporte a persistncia, mas sua persistncia nem sempre so compatveis com as linguagens de programao. No entanto, a persistncia pode ser simulada atravs do uso de fluxos de arquivos que so armazenados no sistema de arquivos do sistema operacional (BUYYA et al., 2009).17/04/2015Universidade Feevale 2014/0124 de 3124Orientao a Objetos Tcnica GeneralizaoConceito:Meyer (2000) afirma que a generalizao o processo de transformar elementos especializados do programa em componentes de software reutilizveis em diversas frentes. Buyya et al. (2009) aprofunda tal considerao ao afirmar que a generalizao identifica as propriedades e os comportamentos comuns em abstraes. A diferena que a abstrao visa simplificar a descrio de uma entidade, enquanto generalizao identifica semelhanas entre um conjunto de abstraes. Generalizaes so importantes, pois so como "leis" ou "teoremas", que estabelecem a base para muitas coisas. A generalizao ajuda a desenvolver software capturando a ideia de semelhana.17/04/2015Universidade Feevale 2014/0125 de 3125Object Oriented for DummiesProf. Esp. merson ButzenOBRIGADO!

[email protected] Hamburgo, abril de 2015.26