You are on page 1of 4

OOP - Programao Orientada por Objeto

Apresentao

A OOP baseada em alguns conceitos, que por si s definem uma nova forma de criar programas para computadores. Estes conceitos independem da linguagem utilizada para implementao dos programas.

abitualmente e!iste certa confuso do termo OOP e da Programao em Ambiente "r#fico. $evemos lembrar que a maioria das implementa%es em OOP foi feita suportando as interfaces gr#ficas do &indo's e de outras plataformas b#sicas, porm no e!iste nen(uma obrigatoriedade da e!ist)ncia prvia de uma plataforma gr#fica para suportar a OOP. $e fato, podemos programar em *urbo Pascal ou em +,, no ambiente $O-, uma interface claramente caracter, de forma Orientada ao Ob.eto.

Decomposio Orientada ao Objeto

Esta forma decomposio/ baseada na premissa que os $A$O- e no as fun%es so a parte mais importante do sistema. Este tipo de decomposio interpreta um soft'are como sendo uma quantidade de estruturas de dados isoladas que formam no seu todo a estrutura base do sistema.

0ma analogia v#lida entre a forma tradicional 1centrada nas fun%es2 e a forma orientada ao ob.eto / a comparao entre as fun%es sint#ticas de 3erbos e -ubstantivos. Analisemos a frase abai!o4

"O disquete gravou o arquivo."

O verbo 5gravar5 desempen(a uma funo, enquanto o substantivo 5arquivo5, sofre os efeitos da funo. 6a metodologia tradicional, escrever7amos um programa voltado a definio da 5funo5 do verbo gravar, enquanto na metodologia voltada ao 5ob.eto5 nos preocupar7amos com o substantivo arquivo.

*odo programador e!periente reclama da manuteno dos programas e!istentes.

3amos ento alterar a frase anterior para4

5O disquete perdeu o arquivo."

A mudana foi 5somente5 do verbo. 6o enfoque VERBO, tudo teria que ser alterado. Podemos claramente perceber que todos os processos usados para descrever a gravao ficaram obsoletos. O 5arquivo5 escrito para a frase original serviria no m#!imo de 5base5 para a elaborao do 5novo5 programa. 8# no enfoque SUBSTANT VO, apenas a ao e!ercida sobre o 5ob.eto5 arquivo / que seria alterada, ou se.a reduzir7amos o total de (oras de manuteno a ser e!ecutada no soft'are9

A proposta original da programao orientada a ob.etos baseia:se na premissa que o soft'are pode ser obrigado a fazer mais coisas, ou mesmo fazer algo diferente do que o proposto inicialmente, porm ele ainda ir# a fazer essa coisas para os mesmos dados ou para dados semel(antes. $e fato podemos criar ou retirar campos de um cadastro de cliente, porm o tal cadastro dever# sempre receber opera%es de pesquisa, incluso ou eliminao de registros.

Bene!"cios da OOP

;istaremos a seguir os principais gan(os, para o desenvolvedor, caso este troque a <etodologia *radicional pela Orientada ao Ob.eto.

E#atido: $evido a caracter7stica do desenvolvimento estruturado, onde elabora:se um pro.eto e $EPO=- faz:se os programas, podemos ter no final um sistema que no atenda perfeitamente seus ob.etivos depois de implementado. 6o desenvolvimento OOP, devido ao fato deste ser feito de maneira quase que interativa com o usu#rio, este risco/ significativamente diminuido. A pouca quantidade de cdigo program#vel tambm reduz os problemas inerentes as mudanas das especifica%es durante o desenvolvimento do pro.eto.

Potencia$idade: $efinimos potencialidade a forma como o programa reage aos erros imprevistos como uma fal(a na impressora, ou a um disco c(eio. *anto maior for a potencialidade, maior a capacidade do programa em causar o menor 5estrago5 poss7vel aos dados e evitar uma sa7da dr#stica do sistema.

E#tensibi$idade: $izemos que quanto maior for a e!tensibilidade do soft'are, maior ser# sua capacidade em adequar:se as especifica%es definidas pelos analistas.

Re%ti$i&ao: A capacidade de se otimizar a produtividade do programador depende diretamente da maneira como o soft'are disponibiliza a reutilizao do cdigo gerado. $e fato, a maioria dos programadores profissionais, .# reutiliza cdigo anteriormente gerado, porm a perfeita reutilizao consiste na utilizao +O<P;E*A de um cdigo gerado para algum sistema -E< qualquer outra adaptao prvia.

'%atro Pr"ncipios da Prograo Orientada ao Objeto

Abstrao de Dados: > o processo de criar novos tipos de dados, ou se.a, a capacidade de abstrairmos algo, porm recon(ecendo todas as suas propriedade b#sicas. 0m registro definido no d?ase por e!emplo no pode ser abstra7do de forma alguma, porm o mesmo registro definido em outras linguagens como o ?A-=+, o + e o Pascal podem facilmente ser abstra7dos. Podemos tambm definir um boto que possa ser4 - Exibido - Executar um Rotina - No ser disponibilizado 0m tipo de dado definido pelo programador ideal/ aquele se comporta da mesma forma como os tipos de dados definidos pela prpria linguagem. @uando criamos uma tabela de produtos em um banco de dados, abstraimos um produto e todo o con.unto de informa%es necess#rias para sua utilizao. *oda vez que uma linguagem nos permite referir aos registros desta tabela como um todo, estamos atigindo um ob.etivo b#sico da Abstrao de $ados. Por e!emplo, a linguagem dever permitir a passagem de um registro para uma funo, no somente de um campo ou outro9 =maginemos dois nAmeros. 6ada mais natural que apresentarmos sua soma. =maginemos agora uma operao venda de produto. 6ada mais 5natural5 que criarmos uma 5operao5 de venda. Para criarmos um tipo de dado abstrato, devemos construir uma classe que represente o tipo de dado e os servios que esta classe oferece. $evemos entender uma +;A--E como sendo uma especificao para um tipo abstrato que especifica os dados e as rotinas necess#rias para a implementao dos dados e dos servios adequados a necessidade do programador. $esta forma usualmente o programador ir# se preocupar no que a classe possui e no naquilo que ela significa. Os servios oferecidos so c(amados de m(todos, ou se.a, so as fun%es criadas ou utilizadas pelo programador. Aqueles elementos de dados individuais so c(amados de instncias. Binalmente os ob.etos so instCncias de uma classe da mesma forma que uma vari#vel numrica nada mais/ que uma instCncia do tipo inteiro em linguagem +.

Encaps%$ao: A encapsulao consiste em ocultarmos ao usu#rio o funcionamento interno de uma classe. $esta forma todos os detal(es de um ob.eto, que so insignificantes ao

programador no sero aparentes. A principal vantagem da encapsulao/ permitir que os implementadores de classes mudem a implementao de uma classe sem que precisem alterar algum cdigo gerado. $esta forma podemos alterar os dados de um produto usando a mesma classe .# previamente criada para a alterao de outro tipo de cadastro.

)erana: O ob.etivo b#sico deste conceito/ permitir a criao de uma nova classe a partir de outras e!istentes sem contudo duplicar cdigo algum. A nova classe, c(amada de derivada, se comportar# de maneira an#loga a classe que l(e deu origem, comportando:se diferentemente apenas naquilo que for alterado em relao a classe original. A (erana/ a respons#vel direta pela grande reusabilidade usual nos sistemas baseados em OOP. A (erana permite que avancemos gradualmente em relao aos ob.etivos, sem perder consist)ncias 1alvos2 anteriormente atingidos. Assim podemos adaptar o comportamento de um componente sem mudar o prprio componente. $esta forma podemos incrementalmente alterar nosso sistema sem comprometimento do cdigo.

Po$imor!ismo: Este conceito permite declararmos que diferentes classes podem definir mtodos de mesmo nome. =sto importante na medida em que nos permite escrever rotinas que operem com qualquer classe que implementem mtodos necess#rios. $esta forma, as classes tornam:se mais independentes uma da outra e assim podemos criar novas classes no gerando qualquer impacto sobre aquelas anteriormente e!istentes.

A inter!ace OOP e a inter!ace *r+!ica

6o necess#rio que uma linguagem se.a gr#fica para que esta se.a OOP, porm devido as caracteristicas funcionais do ambiente gr#fico, infinitamente mais f#cil o desenvolvimento de aplicativos se utilizarmos os conceitos da OOP em ambientes gr#ficos. +ada componente criado em um ambiente gr#fico pode ser facilmente modificado atravs dos recursos gr#ficos do ambiente. $a mesma forma ficaria e!tremamente mais f#cil implementarmos altera%es e montagens de telas neste ambiente. Assim virtualmente todos os ambientes OOP tambm so 3isuais, apesar da rec7proca no ser verdadeira. As primeiras vers%es do 3? no suportavam integralmente os princDpios descritos anteriormente, da mesma forma que o *urbo Pascal verso E ainda no estava perfeitamente adequado a metodologia disposta acima. *odavia deve ser destacado que no imprescind7vel que uma linguagem obedea totalmente os princ7pios acima para que se ten(a alta produtividade ou ainda que se.a largamente empregada, porm a ader)ncia aos princ7pios e!postos acima devem, ao menos teoricamente, permitir que o desenvolvedor da ferramenta FAF passe a escrever na ferramenta F?F com um m7nimo de tempo de aprendizado.